commit e383016e0b0e185d6a76e6d771ee6b7b147a6222 parent be74bfea970ac5400110043bfc1a9df011421131 Author: James Eversole <james@eversole.co> Date: Sat, 17 Oct 2026 15:13:02 -0500 Refresh site assets with the accepted constructor-K compiler Pin the authenticated be74bfe compiler publication; rebuild curated demos, contract/runtime/compiler goldens, the practical environment, the three inspector libraries and all 15 showcase releases. Publish 25 new 0.1.2 releases while retaining all 49 prior versions and their exact bundles. Allow native catalogue upgrades only through a fresh accepted version of the already indexed package, with conflict/idempotence controls. Independently verify the compiler manifest's 1171 exports. Enlarge the GC specimen rather than dropping the >6m allocation control; replace the obsolete compiler-size floor with explicit 2 MiB/16 MiB seeding boundaries. Make the complete site refresh a required final part of full compiler promotion and link the ordered workflow from compiler rebuilding. Validation: 88 bounded Node tests, independent Haskell/compiler and contract comparisons, Chromium integration, JS parity, matching site/dependency builds and nix flake check. Retain prior matching site/dependency output; final rolling retention check passed after pruning 31 superseded object directories (~0.08 GiB). No public deployment. Diffstat:
45 files changed, 372 insertions(+), 79 deletions(-)
diff --git a/docs/compiler-rebuilding.md b/docs/compiler-rebuilding.md @@ -267,6 +267,16 @@ Changing fingerprints to describe an old executable as newly compiled is not a publication procedure. Support-only changes need candidate/publication checks, but do not require a new compiler generation merely because they edit `.tri`. +Full compiler publication also includes the browser/site assets. Commit the +accepted compiler/support fixtures first (the site authenticates their full Git +origin), then complete the [site compiler-promotion refresh](../ext/demo-site/README.md.html#compiler-promotion-refresh) +and commit its matching assets and validation changes. Updating the native +compiler does **not** update the site's separately pinned compiler. A deferred +site refresh is an incomplete full publication, not a completed promotion. +Finish [rolling retention](#rolling-development-retention) after this refresh; +retain matching previous site/dependency outputs for rollback. Local preparation +and validation do not authorize public deployment. + ## Inputs, restart, and resource controls Full jobs use eight GHC capabilities, at most 64 GiB, and a two-hour whole-job diff --git a/ext/demo-site/README.md b/ext/demo-site/README.md @@ -133,10 +133,10 @@ Nix, then run the opt-in bounded preparation: ```sh nix build .# python3 ext/demo-site/prepare-showcase.py result/bin/tricu \ - --directory /tmp/arboricx-showcase --stage-site + --directory /tmp/arboricx-showcase --version 0.1.2 --stage-site # Refresh the package set under a new immutable version: python3 ext/demo-site/prepare-showcase.py result/bin/tricu \ - --directory /tmp/arboricx-showcase-next --version 0.1.2 --stage-site + --directory /tmp/arboricx-showcase-next --version 0.1.3 --stage-site ``` Preparation authenticates retained fixtures and requires all recorded working @@ -598,6 +598,71 @@ Preparation defaults to the shipped pin. An upgrade requires an explicit compile bundle and full origin commit, verified against that commit's fixture and metadata before publication. Keep matching site and dependency outputs together for rollback. +## Compiler promotion refresh + +Complete this after every full [compiler publication](../../docs/compiler-rebuilding.md.html#publish-the-accepted-batch), +before final retention cleanup. The native publication and this site's compiler +pin are separate: ordinary preparation defaults to the historical site pin and +**does not upgrade it**. Use the full commit that actually published the accepted +compiler/support fixtures, not the earlier compiler-source commit. + +Keep a matching prior site and dependency pack for rollback. In an exclusively +owned local checkout, use the existing preparation commands in this order: + +```sh +nix build .# +nix build .#inspectorOracle -o result-inspector-oracle +python3 test/shipped_compiler.py +python3 test/fixture_sources.py current +WORK=$(mktemp -d) # Outside the repository's inherited workspace mappings. +PUBLICATION_COMMIT=FULL_40_HEX_FIXTURE_PUBLICATION_COMMIT +VERSION=NEW_UNUSED_RELEASE_VERSION + +python3 ext/demo-site/test/prepare-compiler.py result/bin/tricu \ + --compiler-bundle test/fixtures/compiler-library.arboricx \ + --reference-commit "$PUBLICATION_COMMIT" +python3 ext/demo-site/prepare.py result/bin/tricu --backend stable +python3 ext/demo-site/test/prepare-conformance.py result/bin/tricu +python3 ext/demo-site/test/prepare-contracts.py result/bin/tricu +python3 test/library_inspector.py result/bin/tricu \ + --oracle result-inspector-oracle/bin/inspector-oracle \ + --directory "$WORK/inspection" --version "$VERSION" --stage-site ext/demo-site +python3 ext/demo-site/prepare-showcase.py result/bin/tricu \ + --directory "$WORK/showcase" --version "$VERSION" --stage-site +``` + +Then run `prepare-index.py` with explicit `--version NAME=VERSION` arguments for +changed non-native demos, as described [below](#build--regenerate--validate). +Unchanged demos can retain their existing release. This step regenerates the +practical environment against the new compiler. The inspector preparation +refreshes foundation, file-IO and inspection libraries; the showcase preparation +refreshes the other native packages and parser/lexer demos. Neither substitutes +for the other. A changed native catalogue entry must advance through a fresh +accepted version of its already indexed package; old releases remain immutable. + +Run all checks in [Build / regenerate / validate](#build--regenerate--validate): +JS parity, the bounded serial Node suite, independent Haskell/compiler and +contract comparisons, and the bounded Chromium test. Update backend-sensitive +expectations only against independently checked manifests/results. If a faster +compiler no longer exercises a resource control, extend its specimen rather +than weakening the control (for example, the greater-than-six-million-allocation +GC check). Never regenerate expected results using the browser being tested. + +Stage new bundle files so Git-flake builds can see them, then build and check: + +```sh +git add ext/demo-site +nix build .#arboricxSite -o result-site +nix build .#arboricxSiteDeps -o result-site-deps +nix flake check +``` + +Inspect the new compiler pin, provenance, exact release versions, environments, +source hashes and goldens together. Commit the refreshed assets and tests, retain +validation evidence, and complete scratch retention. The site/dependency outputs +must match; do not activate a site without its corresponding registry dependencies. +These steps prepare and validate local release assets, not a public deployment. + ## Runtime architecture - `src/graph.ts`: Worker-local heap of immutable constructors, lazy application diff --git a/ext/demo-site/bundles/0811457d501113ee11194f90e279ebb4ef9d548c70cb48d146be03eb9af7505f.arboricx b/ext/demo-site/bundles/0811457d501113ee11194f90e279ebb4ef9d548c70cb48d146be03eb9af7505f.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/0844067dd63e9e6fc252a2ab2343b1937bb31abd8e44ad6683895f81d0c2499c.arboricx b/ext/demo-site/bundles/0844067dd63e9e6fc252a2ab2343b1937bb31abd8e44ad6683895f81d0c2499c.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/0850a25a5c18dad2560a8aa9c834fc3215f117dcde55e91982a73ee54491b532.arboricx b/ext/demo-site/bundles/0850a25a5c18dad2560a8aa9c834fc3215f117dcde55e91982a73ee54491b532.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/0e147f90159752bb96128453a4c7dacb497005ad96d5b38b27a369c87ce06079.arboricx b/ext/demo-site/bundles/0e147f90159752bb96128453a4c7dacb497005ad96d5b38b27a369c87ce06079.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/0f9fc50a4b5a5270c274113418bdd9099f124ebd57d16e0f58a054081738c408.arboricx b/ext/demo-site/bundles/0f9fc50a4b5a5270c274113418bdd9099f124ebd57d16e0f58a054081738c408.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/2cc226f82e9c3526fb086ffe0977a909fabe753fc82de1e18d1f507625c681fe.arboricx b/ext/demo-site/bundles/2cc226f82e9c3526fb086ffe0977a909fabe753fc82de1e18d1f507625c681fe.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/355e41506f39e05da8c8a72a68aa810a486e062480322bac11af67e86980520e.arboricx b/ext/demo-site/bundles/355e41506f39e05da8c8a72a68aa810a486e062480322bac11af67e86980520e.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/390ffadd746dfa78a9b846a41282c25ff947a7ceddf1535093c40b4594850624.arboricx b/ext/demo-site/bundles/390ffadd746dfa78a9b846a41282c25ff947a7ceddf1535093c40b4594850624.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/3cda081418977c005f8375a0aa56a9daadddc83d1413a4f750dbee1e155f2206.arboricx b/ext/demo-site/bundles/3cda081418977c005f8375a0aa56a9daadddc83d1413a4f750dbee1e155f2206.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/401961d889131c735bf48b415f53d3b85dfab0136496299f60cf1dcb0b264f14.arboricx b/ext/demo-site/bundles/401961d889131c735bf48b415f53d3b85dfab0136496299f60cf1dcb0b264f14.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/41f27e53f2cde13130dc5a9c3e74de49d16f94f7dc565ca4357c55ce4ba5280d.arboricx b/ext/demo-site/bundles/41f27e53f2cde13130dc5a9c3e74de49d16f94f7dc565ca4357c55ce4ba5280d.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/5305ab2e168279b82d09ab061c31a386a27e3f8ce51ad50b4241850522bd3a2f.arboricx b/ext/demo-site/bundles/5305ab2e168279b82d09ab061c31a386a27e3f8ce51ad50b4241850522bd3a2f.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/60afc41f04fa65130326eeed4ca9e128bee5e90c7041f9641bbf9cfe87c142cd.arboricx b/ext/demo-site/bundles/60afc41f04fa65130326eeed4ca9e128bee5e90c7041f9641bbf9cfe87c142cd.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/81e16ee575d66ef42f735cd9425f4005e5f04b733f1c8b6646a1814ba8e5d8fa.arboricx b/ext/demo-site/bundles/81e16ee575d66ef42f735cd9425f4005e5f04b733f1c8b6646a1814ba8e5d8fa.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/a1919c931e13a4b29536e09b3230a7cda3e972934cdfb401aa50ceffbdba70ef.arboricx b/ext/demo-site/bundles/a1919c931e13a4b29536e09b3230a7cda3e972934cdfb401aa50ceffbdba70ef.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/a8ea6cb0c1d175206448456e907790f5204f43c48581f588ddb4894d4c40b996.arboricx b/ext/demo-site/bundles/a8ea6cb0c1d175206448456e907790f5204f43c48581f588ddb4894d4c40b996.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/a90ff53f2e05424ad536d7b819fb1710dab83127f0516d66384bd9bbe8ddbda2.arboricx b/ext/demo-site/bundles/a90ff53f2e05424ad536d7b819fb1710dab83127f0516d66384bd9bbe8ddbda2.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/dd39639f1d0a1a14f7856b8d0db682adf36d1e7501ea1889bd185ea500989380.arboricx b/ext/demo-site/bundles/dd39639f1d0a1a14f7856b8d0db682adf36d1e7501ea1889bd185ea500989380.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/e23c7eab463765182fcfe4aafacca71d223f30664374019b41d29539d0f3883b.arboricx b/ext/demo-site/bundles/e23c7eab463765182fcfe4aafacca71d223f30664374019b41d29539d0f3883b.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/e70583bc724ae495a33ead7e10614e2c6a9664bf4855c7e6042871cbd5d88a09.arboricx b/ext/demo-site/bundles/e70583bc724ae495a33ead7e10614e2c6a9664bf4855c7e6042871cbd5d88a09.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/e756a481b3056a2e76f50316ccf77bfab8b15727b7bec899580c2eb919e668b2.arboricx b/ext/demo-site/bundles/e756a481b3056a2e76f50316ccf77bfab8b15727b7bec899580c2eb919e668b2.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/efbdff446802ddcfe353461dce3ea75b60187fce601f0f47cfe7320511aea02e.arboricx b/ext/demo-site/bundles/efbdff446802ddcfe353461dce3ea75b60187fce601f0f47cfe7320511aea02e.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/f571888c5aa3f7a91e9d5d6c45c674851ea8e3598514ad8d535fd3e9056d0314.arboricx b/ext/demo-site/bundles/f571888c5aa3f7a91e9d5d6c45c674851ea8e3598514ad8d535fd3e9056d0314.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/f9f0ab0e44f6ae39479d74c6c66a2bdaba3f40bd26781c3ec95300c2ee3c07f3.arboricx b/ext/demo-site/bundles/f9f0ab0e44f6ae39479d74c6c66a2bdaba3f40bd26781c3ec95300c2ee3c07f3.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/fb81fe47421564ac80fedc90be6003906e017978385f749d2da95297e58587c2.arboricx b/ext/demo-site/bundles/fb81fe47421564ac80fedc90be6003906e017978385f749d2da95297e58587c2.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/fe3b02f68025b90d0ce782885c8f72582642a985694eb4bcd702c2e006846a86.arboricx b/ext/demo-site/bundles/fe3b02f68025b90d0ce782885c8f72582642a985694eb4bcd702c2e006846a86.arboricx Binary files differ. diff --git a/ext/demo-site/catalogue.json b/ext/demo-site/catalogue.json @@ -70,7 +70,7 @@ { "id": "greet", "title": "A conversation", - "hash": "d68a817b6028f5a27801504bb24bbed2a1519bebb0a67443711e35e57a708b4c", + "hash": "0811457d501113ee11194f90e279ebb4ef9d548c70cb48d146be03eb9af7505f", "source": "-- Standalone browser demo: constructors match lib/io.tri version 1.\nio action = t \"tricuIO\" (t 1 action)\npure value = t 0 value\nbind action k = t 1 (t action k)\nputStr text = t 10 text\ngetLine = t 11 t\n\nmain = (io (do bind\n putStr \"What is your name?\\n\"\n name <- getLine\n putStr \"Hello, \"\n putStr name\n putStr \"!\\n\"\n pure name))\n", "sourceSha256": "8cd92eb18ed9152d7ea3fed8e82ec2b2fb92551277eefb4f3f020c8998321538", "export": "main", @@ -83,7 +83,7 @@ { "id": "microscope", "title": "Tree microscope", - "hash": "de3dd6da1be97037119e9bc39a89b117776a48ba34cad2aa7ceda4fcf3590994", + "hash": "a1919c931e13a4b29536e09b3230a7cda3e972934cdfb401aa50ceffbdba70ef", "source": "-- Structural operations on data OR program trees. No source evaluation.\n-- Direct three-constructor dispatch is intentional: ordered-pattern workers\n-- cost 3.9x the aggregate work on the retained 16-case screen. No lazy* thunks.\ntriage leaf stem fork = t (t leaf stem) fork\ntrue = t t\nfalse = t\nboth a b = triage false (ignored : b) (ignored ignored2 : b) a\n\nshape tree = triage \"Leaf\" (child : \"Stem\") (left right : \"Fork\") tree\n\n-- Canonical numbers are least-significant-bit lists, not unary numbers.\nsucc n = (triage 1 (ignored : 0)\n (bit rest : triage (t (t t) rest) (ignored : t t (succ rest)) (ignored ignored2 : 0) bit)\n n)\n\ncount tree acc = (triage\n (succ acc)\n (child : count child (succ acc))\n (left right : count right (count left (succ acc)))\n tree)\n\nsize tree = count tree 0\n\nsame a b = (triage\n (triage true (ignored : false) (ignored ignored2 : false) b)\n (x : triage false (y : same x y) (ignored ignored2 : false) b)\n (x y : triage false (ignored : false) (u v : both (same x u) (same y v)) b)\n a)\n", "sourceSha256": "40716bc35732ffca8ad2862c025a3280dec2b5a9b469c9485a20bf6e1569a4c2", "export": "size", @@ -136,7 +136,7 @@ { "id": "rgb", "title": "RGB validator", - "hash": "b7d65492062996f559cc5eb83e68ddc765fd72f5136470eee2104b7b8182b290", + "hash": "a90ff53f2e05424ad536d7b819fb1710dab83127f0516d66384bd9bbe8ddbda2", "source": "-- Exactly three canonical bytes: reject redundant high zero bits too.\ntrue = t t\nfalse = t\nboth left right = triage false (_ : right) (_ _ : right) left\n\n-- Direct constructor dispatch in this per-bit hot loop avoids repeated pattern\n-- tests. A nonzero numeral's final bit must be true, not a redundant high zero.\ntriage leaf stem fork = t (t leaf stem) fork\nbit? value = triage true (child : triage true (_ : false) (_ _ : false) child) (_ _ : false) value\nbits? number budget = (triage true (_ : false)\n (bit rest : triage false (_ : false)\n (_ remaining : both (bit? bit)\n (triage bit (_ : false) (_ _ : bits? rest remaining) rest))\n budget)\n number)\nbyte? value = bits? value [t t t t t t t t]\n\nmain (t _) = \"Expected a list.\"\nmain [_ | (t _)] = \"Expected a list.\"\nmain [_ | [_ | (t _)]] = \"Expected a list.\"\nmain [r g b] = case both (byte? r) (both (byte? g) (byte? b)) of\n ^true = \"RGB triple accepted.\"\n _ = \"A channel is not a canonical byte (0-255).\"\nmain _ = \"Expected exactly three channels.\"\n", "sourceSha256": "3eec1b9e51ae69a5655e8cd1b79d20fd8f478a6491cc4cdfb4eee63df1b9e254", "export": "main", @@ -158,7 +158,7 @@ { "id": "shipping", "title": "Shipping policies", - "hash": "ed25157519948f241d302c20837c5c291bf675e165117c9f046f4dcc8651c8c9", + "hash": "efbdff446802ddcfe353461dce3ea75b60187fce601f0f47cfe7320511aea02e", "source": "-- Shipping policy: arguments are destination, cart subtotal in cents, grams.\n-- Destinations: domestic, regional, international. Grams: 1..5000.\n-- Select v1/v2 with the same cart: domestic free shipping changes from $75 to $100.\n-- Otherwise domestic costs $4.99/$5.99, regional $9.99, international $19.99.\n-- Packages above 1kg add $2.50. Subtotals are bounded to $10,000.\n-- The bundle hash + export pins the policy used to reproduce a quote later.\n-- Preparation closes practical-support.tri and selected base helpers into code.\n\nbaseRate 1 \"domestic\" = 499\nbaseRate _ \"domestic\" = 599\nbaseRate _ \"regional\" = 999\nbaseRate _ _ = 1999\n\npaidRate version zone grams = case lessEq grams 1000 of\n ^true = baseRate version zone\n _ = addBinary 250 (baseRate version zone)\n\nfreeThreshold 1 = 7500\nfreeThreshold _ = 10000\n\namount version zone subtotal grams = case and? (equal? zone \"domestic\") (lessEq (freeThreshold version) subtotal) of\n ^true = 0\n _ = paidRate version zone grams\n\nquote version zone subtotal grams = case and? (natural? subtotal) (natural? grams) of\n ^true = (case or? (equal? zone \"domestic\") (or? (equal? zone \"regional\") (equal? zone \"international\")) of\n ^true = (case and? (lessEq subtotal 1000000) (and? (lessEq 1 grams) (lessEq grams 5000)) of\n ^true = [(stringField \"status\" \"ok\") (numberField \"policyVersion\" version)\n (stringField \"destination\" zone) (numberField \"shippingCents\" (amount version zone subtotal grams))]\n _ = failure \"Subtotal must be <=1000000 cents; grams must be 1..5000.\")\n _ = failure \"Unknown destination.\")\n _ = failure \"Subtotal and grams must be canonical natural numbers.\"\n\nv1 zone subtotal grams = quote 1 zone subtotal grams\nv2 zone subtotal grams = quote 2 zone subtotal grams\n", "sourceSha256": "6738b22bab5fe1a349404eefa0368cb4e492d6b7a6b0cf679ab4a146ee8b0aa2", "export": "v1", @@ -221,7 +221,7 @@ { "id": "events", "title": "Event adapters", - "hash": "ad05c3311ddcd6d533f438f379f0177347570e6c3f563939ecb9e5c88a7d636b", + "hash": "0844067dd63e9e6fc252a2ab2343b1937bb31abd8e44ad6683895f81d0c2499c", "source": "-- Event adapter: two producers, one consumer-facing record schema.\n-- vendorA accepts [eventName customer totalCents]. eventName is purchase/refund.\n-- vendorB accepts [customer refunded totalCents]. refunded is a Boolean.\n-- Both return schemaVersion, eventType, customer and amountCents.\n-- Try the two exports: their presets describe the same order.created event.\n-- A producer can publish the adapter hash alongside its event schema.\n-- Preparation closes practical-support.tri and selected base helpers into code.\n\nnormalized event customer cents = case text? customer of\n ^true = (case and? (natural? cents) (lessEq cents 1000000) of\n ^true = [(numberField \"schemaVersion\" 1) (stringField \"eventType\" event)\n (stringField \"customer\" customer) (numberField \"amountCents\" cents)]\n _ = failure \"amountCents must be a canonical natural <=1000000.\")\n _ = failure \"customer must be scalar text.\"\n\nfromA \"purchase\" customer cents = normalized \"order.created\" customer cents\nfromA \"refund\" customer cents = normalized \"order.refunded\" customer cents\nfromA _ _ _ = failure \"Unknown vendor A event.\"\n\nfromB customer ^true cents = normalized \"order.refunded\" customer cents\nfromB customer ^false cents = normalized \"order.created\" customer cents\nfromB _ _ _ = failure \"refunded must be a canonical Boolean.\"\n\n-- Preserve list-shape diagnostics without inspecting any field before dispatch.\nunpack handler (t _) = failure \"Expected a list.\"\nunpack handler [_ | (t _)] = failure \"Expected a list.\"\nunpack handler [_ | [_ | (t _)]] = failure \"Expected a list.\"\nunpack handler [a b c] = handler a b c\nunpack _ _ = failure \"Expected exactly three fields.\"\n\nvendorA values = unpack fromA values\nvendorB values = unpack fromB values\n", "sourceSha256": "c0a6deee9945ae50a71c68461030af7cdbce30495bb6d154b98e393bb70280a1", "export": "vendorA", @@ -299,7 +299,7 @@ { "id": "registration", "title": "Registration validator", - "hash": "1bdd76b8f6acfc62f08d7badde27c23d3a4e9a1042fd18bb235903b48cf71ec6", + "hash": "a8ea6cb0c1d175206448456e907790f5204f43c48581f588ddb4894d4c40b996", "source": "-- Registration validator: name, email, age, termsAccepted are separate arguments.\n-- Returns one field-specific message per input, plus an accepted Boolean.\n-- Name must be nonempty scalar text. Age must be a natural from 18 to 120.\n-- Email uses a deliberately small rule: nonempty text containing @ and a dot.\n-- Terms must be the canonical true Boolean. This is a teaching policy, not SMTP validation.\n-- Browser and server can pin this same executable instead of duplicating rules.\n-- Preparation closes practical-support.tri and selected base helpers into code.\n\nnameMessage name = case text? name of\n ^true = (case name of\n [] = \"Name is required.\"\n _ = \"\")\n _ = \"Name must be scalar text.\"\n\nemailMessage email = case text? email of\n ^true = (case and? (contains? \"@\" email) (contains? \".\" email) of\n ^true = \"\"\n _ = \"Email must contain @ and a dot.\")\n _ = \"Email must be scalar text.\"\n\nageMessage age = case natural? age of\n ^true = (case and? (lessEq 18 age) (lessEq age 120) of\n ^true = \"\"\n _ = \"Age must be from 18 to 120.\")\n _ = \"Age must be a canonical natural.\"\n\ntermsMessage ^true = \"\"\ntermsMessage _ = \"Accept the terms.\"\n\nreport name email age terms = [\n (boolField \"accepted\" (and? (equal? name \"\") (and? (equal? email \"\") (and? (equal? age \"\") (equal? terms \"\")))))\n (stringField \"nameError\" name) (stringField \"emailError\" email)\n (stringField \"ageError\" age) (stringField \"termsError\" terms)]\n\nmain name email age terms = report (nameMessage name) (emailMessage email) (ageMessage age) (termsMessage terms)\n", "sourceSha256": "bc01d7b3af0dabb3c467aa06e48d7c18118276bc087dda0ea867f8a1a660ef05", "export": "main", @@ -352,7 +352,7 @@ { "id": "migration", "title": "Profile migrations", - "hash": "68ffd0cf2f046ac6d9f1867ba8c1eca5563a132b836db1be1ea0e3c39f568a3e", + "hash": "41f27e53f2cde13130dc5a9c3e74de49d16f94f7dc565ca4357c55ce4ba5280d", "source": "-- Archived profile v0: [name email]. v1: adds schemaVersion and displayName.\n-- v2: also supplies marketingOptIn=false; existing data is preserved.\n-- Select v1/v2 with the same input to compare the two target schemas.\n-- A migration receipt can record the input identity, executable hash/export,\n-- output identity and wire schema. Running this demo stays entirely local.\n-- Preparation closes practical-support.tri and selected base helpers into code.\n\nmigrate version name email = case and? (text? name) (text? email) of\n ^true = (case version of\n 1 = [(numberField \"schemaVersion\" 1) (stringField \"displayName\" name) (stringField \"email\" email)]\n _ = [(numberField \"schemaVersion\" 2) (stringField \"displayName\" name) (stringField \"email\" email)\n (boolField \"marketingOptIn\" false)])\n _ = failure \"Name and email must be scalar text.\"\n\nprofile _ (t _) = failure \"Expected a list.\"\nprofile _ [_ | (t _)] = failure \"Expected a list.\"\nprofile version [name email] = migrate version name email\nprofile _ _ = failure \"Expected [name email].\"\n\nv1 values = profile 1 values\nv2 values = profile 2 values\n", "sourceSha256": "3f8b8125203b08e6e57b83f509b445e08c882da6fe507efe338bfde0649f3f8a", "export": "v1", @@ -417,8 +417,9 @@ }, { "id": "parser", + "preparation": "native", "title": "Parser combinators", - "hash": "c7560f717712244810ed3b354912fe8791c2bab5c1df1520813426be01910c2f", + "hash": "355e41506f39e05da8c8a72a68aa810a486e062480322bac11af67e86980520e", "source": "!import prelude *\n!import parser *\n!import native_math as N\n!export parseNames\n!export parsePrefix\n\n-- Lowercase names separated by commas. Try \"red,green\", \"red,,blue\",\n-- \"red,\" and \"red green\". A comma commits to another name.\n-- parseNames requires the entire input; parsePrefix exposes any remainder.\n-- These native imports are pinned at preparation time. Source is read-only\n-- here because browser draft compilation does not resolve native modules.\nnameParser = parserLabel \"lowercase name\" (parserSome (parserSatisfy (c : N.inRange c 97 122)))\ncommaParser = parserThen (parserExpect 44) parserCommit\nnamesPrefix = parserSepBy1 nameParser commaParser\nnamesComplete = parserBefore namesPrefix (parserLabel \"end of input\" parserEof)\n\nreport reply = (parserMatchReply\n (diagnostic rest consumed committed : [\n [\"status\" 0 \"error\"]\n [\"expected\" 0 (parserDiagnosticExpected diagnostic)]\n [\"remaining\" 0 rest]\n [\"consumed\" 2 consumed]\n [\"committed\" 2 committed]])\n (names rest consumed committed : [\n [\"status\" 0 \"ok\"]\n [\"names\" 0 (intercalate \", \" names)]\n [\"count\" 1 (length names)]\n [\"remaining\" 0 rest]\n [\"consumed\" 2 consumed]\n [\"committed\" 2 committed]])\n reply)\nparseNames text = report (namesComplete text)\nparsePrefix text = report (namesPrefix text)\n", "sourceSha256": "3405e18774db8de759b7793880e1568c156d68e5fe4a388e09b95ff301d896f5", "export": "parseNames", @@ -451,14 +452,13 @@ "output": "record", "mode": "pure" } - }, - "preparation": "native" + } }, { "id": "lexer", "preparation": "native", "title": "Located lexer scans", - "hash": "50c088ee7b87f229ef37c375e86d32d594610b5ef7cc61ea129351da0ce4b208", + "hash": "e756a481b3056a2e76f50316ccf77bfab8b15727b7bec899580c2eb919e668b2", "source": "!import prelude *\n!import parser *\n!import lexer *\n!import native_math as N\n!export scanWord\n!export scanWhitespace\n\n-- Positioned prefix scans, not whole-input parsers. The remainder begins\n-- at the first nonmatching character. Positions count source characters,\n-- not UTF-8 bytes or display columns: only LF advances the line.\n-- Native imports are pinned during preparation; browser source is read-only.\nreport reply = (let\n payload = parserReplyPayload reply\n end = snd payload\n in [\n [\"matched\" 0 (fst payload)]\n [\"remaining\" 0 (parserReplyRest reply)]\n [\"line\" 1 (lexerPositionLine end)]\n [\"column\" 1 (lexerPositionColumn end)]\n [\"offset\" 1 (lexerPositionOffset end)]\n [\"consumed\" 2 (parserReplyConsumed reply)]])\n\nscan predicate text = report (lexerMapScan reverse\n (lexerScanWhile text lexerStart [] predicate (state character : pair character state)))\nscanWord text = scan (character : N.inRange character 97 122) text\nscanWhitespace text = scan (character : or? (equal? character 32)\n (or? (equal? character 9) (equal? character 10))) text\n", "sourceSha256": "5478169b100e087b8f8862418a2cd5d0e593edcc299a122b762842483f4525e0", "export": "scanWord", diff --git a/ext/demo-site/compiler-reference.v1 b/ext/demo-site/compiler-reference.v1 @@ -5,7 +5,7 @@ module prelude prelude lib/prelude.tri 0c26a0142d15cc2a11a4317264491c797944e76ea module io io lib/io.tri c4ec206590d25d581b9a96f242c22936d8d0b2e9903331ce50b30ad7de254bd6 module source.object source_object lib/source/object.tri 76a7e0ddde50e8a600ae8855d9091aa59af3235193605e5a7a07532ae90372af module source.module source_module lib/source/module.tri fb609a75a12659d2a05a63681c0cf96ef606045b4aebe044eac077c8cd23fbf2 -module source.resolve source_resolve lib/source/resolve.tri bbb524d3e08a9961f8de6d8e2ab2e7dd47576b8ed78676a64d997bf65133b543 +module source.resolve source_resolve lib/source/resolve.tri e31cd89fb71fb7606a05a9bd0afd553f764b40bc0731d944aea1d63e5643c5b9 module source.build source_build lib/source/build.tri 5c24cc853df42e433916b1528fc8cd56334bd393606f54e7b12efb6a7069be0d module parser parser lib/parser.tri 31e8c679e086bdf9b68e05a4bb71fd413e66e53fd93b2e4b4a806930020b36e4 module source.order source_order lib/source/order.tri bfa6059c7986f263df801f70879da4870ecca95bdbb0b5726d051e92b695cca4 @@ -22,8 +22,8 @@ module source.lock source_lock lib/source/lock.tri 31ffd58166bf861e82da0a90594cf module source.bundle source_bundle lib/source/bundle.tri 3fedb41000f22609b0bdab8fb222175d1347202eceabe7bdb983bc28b3258627 module graph graph lib/graph.tri bc8622d006e357b1045f2cb3c775a8a58045610ee6f4a617858762d37947b5ec module lexer lexer lib/lexer.tri 946bbf9797a5cf722c6e85f36ac36b1ec2dd3d1f3b2650187c182dff12162bf7 -module source.pattern source_pattern lib/source/pattern.tri 1d43992c04f9881c1ebd0e0ef7f6bdc735780f646a52f95b5a7fb46e14fd4f83 +module source.pattern source_pattern lib/source/pattern.tri b27f1eac18cbe8ad80cdd91f9f546b2d2a782b6cc5c5676232491b95751abe5a module source.equations source_equations lib/source/equations.tri 825f175f5c6dd56e103b94e924283acf5913cbc4554fb42fc07a034f460d2076 -module source.stable source_stable lib/source/stable.tri d52a595e2a4ab187b3d13b478b98a596d83b02fdeae0818c58a105b7a1d14c97 +module source.stable source_stable lib/source/stable.tri ca105b189c1e70919efe86232915ba0c3bc43a385efa48a3c3269c5a17309e48 module math.native native_math lib/math/native.tri 3ee81d8c129a511ddb26b34d22ebc4fe257fb124a99e2b2f1afce8a1b3087009 -bundle 42ef859ea271315a2b2687226773af32739030e419e105c36d4dc3742c979e6e +bundle 2aa8c06ca8c32a10ce8a8e83f2bc3766d2895b3a4c349439b635e04533269d4e diff --git a/ext/demo-site/compiler.json b/ext/demo-site/compiler.json @@ -1,8 +1,8 @@ { "schema": 1, - "hash": "520a2bb435a56706164fb34c7ea06e12e143050ffeb1da2632747e427ce61faf", + "hash": "e70583bc724ae495a33ead7e10614e2c6a9664bf4855c7e6042871cbd5d88a09", "export": "source_unit.compileStableModuleDefinitions", "backend": "stable", "reference": "test/fixtures/compiler-library.arboricx", - "referenceCommit": "1e847d672e27cc17baf593e52b1b39919166a915" + "referenceCommit": "be74bfea970ac5400110043bfc1a9df011421131" } diff --git a/ext/demo-site/demos.json b/ext/demo-site/demos.json @@ -2,9 +2,9 @@ "schema": 1, "backend": "stable", "compilerExport": "source_unit.compileStableModuleDefinitions", - "compilerBundleSha256": "520a2bb435a56706164fb34c7ea06e12e143050ffeb1da2632747e427ce61faf", - "compilerManifest": "c61020998ce5d424fd4f32c6fb41c548447c8431da036770c0d81733b7a4bae1", - "hostSha256": "a2cd93511c126b632a3c6dabe7b6d6dadec8727990355828b95a955c6314c6db", + "compilerBundleSha256": "e70583bc724ae495a33ead7e10614e2c6a9664bf4855c7e6042871cbd5d88a09", + "compilerManifest": "01328f4f795566b61d197e7b9f2017f6d3472c68c119e49b8a4e486afd2741ac", + "hostSha256": "79bc19656b1af3c4f0cec5699279dbd514cba4eea69b69f084a40520da9fcce3", "demos": { "intro": { "demandCases": [], @@ -116,7 +116,7 @@ "demandCases": [], "source": "-- Standalone browser demo: constructors match lib/io.tri version 1.\nio action = t \"tricuIO\" (t 1 action)\npure value = t 0 value\nbind action k = t 1 (t action k)\nputStr text = t 10 text\ngetLine = t 11 t\n\nmain = (io (do bind\n putStr \"What is your name?\\n\"\n name <- getLine\n putStr \"Hello, \"\n putStr name\n putStr \"!\\n\"\n pure name))\n", "sourceSha256": "8cd92eb18ed9152d7ea3fed8e82ec2b2fb92551277eefb4f3f020c8998321538", - "hash": "d68a817b6028f5a27801504bb24bbed2a1519bebb0a67443711e35e57a708b4c", + "hash": "0811457d501113ee11194f90e279ebb4ef9d548c70cb48d146be03eb9af7505f", "mode": "io", "haskellCases": [ { @@ -154,13 +154,13 @@ { "label": "shape-with-opaque-children", "source": "q x = x x\nprobe ignored = shape (t (q q) (q q))", - "program": "212021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002022020210210202021002210202102020210210022102020202021021002202102102020210210002020221021020202102021002202021020210210210022102021020202102100221020210210202102100020202022021021020202021002210210210210202102100220210202021021021002210210202102021021000211002121200212021211002110020212110021100212021211002110020212110021100", + "program": "212021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002022020210210202021002210202102020210210022102020202021021002202102102020210210002020221021020202102021002202021020210210210022102021020202102100221020210210202102100020202022021021020202021002210210210210202102100220210202021021021002210210202102021021000211002121200212021211002110020212110021100212021211002110020212110021100", "result": "22021021020202021002210210210210202102100220210202021021021002210210202102021021000" } ], "source": "-- Structural operations on data OR program trees. No source evaluation.\n-- Direct three-constructor dispatch is intentional: ordered-pattern workers\n-- cost 3.9x the aggregate work on the retained 16-case screen. No lazy* thunks.\ntriage leaf stem fork = t (t leaf stem) fork\ntrue = t t\nfalse = t\nboth a b = triage false (ignored : b) (ignored ignored2 : b) a\n\nshape tree = triage \"Leaf\" (child : \"Stem\") (left right : \"Fork\") tree\n\n-- Canonical numbers are least-significant-bit lists, not unary numbers.\nsucc n = (triage 1 (ignored : 0)\n (bit rest : triage (t (t t) rest) (ignored : t t (succ rest)) (ignored ignored2 : 0) bit)\n n)\n\ncount tree acc = (triage\n (succ acc)\n (child : count child (succ acc))\n (left right : count right (count left (succ acc)))\n tree)\n\nsize tree = count tree 0\n\nsame a b = (triage\n (triage true (ignored : false) (ignored ignored2 : false) b)\n (x : triage false (y : same x y) (ignored ignored2 : false) b)\n (x y : triage false (ignored : false) (u v : both (same x u) (same y v)) b)\n a)\n", "sourceSha256": "40716bc35732ffca8ad2862c025a3280dec2b5a9b469c9485a20bf6e1569a4c2", - "hash": "de3dd6da1be97037119e9bc39a89b117776a48ba34cad2aa7ceda4fcf3590994", + "hash": "a1919c931e13a4b29536e09b3230a7cda3e972934cdfb401aa50ceffbdba70ef", "mode": "pure", "haskellCases": [ { @@ -322,13 +322,13 @@ { "label": "invalid-first-byte", "source": "q x = x x\nprobe ignored = main [(t t) (q q) (q q)]", - "program": "2120212121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102021020202102100220202021021021021002210202020202102100221021020202021021002202021020210210210022020210210202102100221020202102102102100220202020202100220202102021021021002202020210202102100220210202021021021002210202102020210210022102021020202102100220202020202100221021020202021021002202020210202102100221020202020210210022021021021020210210022021021021020210210022102021020202102100220202102102021021002210210202021021021002202102102102021000202022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202020202102100220202020202100220202102102021021002210202021020210210022102102020210210210022020210202102102100220210210210202100020212011212011212121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212010211002020020202210202102020202100220202021021021021002202020202102102100221020210202021021002210210202020210210022020210202102102100221020210202021021002202021020202102100220202020202100221020202020210210022020202020210022020210210202102100221020202102021021002210210202021021021002202021020210210210022021021021020210002121200212002120112002120112002120112010212010211002020200212010211002120112120021200212011201121212120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201021100202002121200212002120102110020200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120102120112010212010211002020202002020202022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202020202102100220202020202100220202102102021021002210202021020210210022102102020210210210022020210202102102100220210210210202100021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020202002020211002120112010212010211002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120102110020200212120021200212010211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112010212011201021201021100202020200212120021200212011200212011200212011201120021201120112002120112011201021201120102120102110020202020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002120112011201120112011201120112011201120212120112121202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100202022021020202102021002210210210202020210022021020202020210022020202020210022020210202102102100220210202021021021002210202021020210210022020202021021021002202021021020210210022102021020202102100220202020202100221020202020210210022102102020202102100221021020202021021002210202102020210210022020202021021021002202021020210210210022102021020202102100220202102020210210022021021021020210002121200212002120102110020200212120021200212011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120102110020201020202210202020202021002202020202021002210210202020210210022020202102021021002210202020202102100220210210210202102100220210210210202102100221020210202021021002202021021020210210022020202020210022102020210202102100221021020202102102100220202020202100220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022102102020202102100221020202020210210022021021021020210210022102102102102021021002202102102102021021002210202021020210210022102102020202102100221020202020210210022020210210202102100220202020202100220210202020210210022102020210210210210022020210202102102100221020210202021021002202020202021002202020210202100220202020210210022102021021020210022021020202102100221020210202102100221020210202102100221020202102021002202102102102021000212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120212011212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002120102110021201120102120102110021201021100212011201120112011201120112011201120112021212021212021211002110020212021212002120021201120021201120021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021201120112011212002120021201120021201120021201120112002120112011200212011201120112021201121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212010211002120112010212010211002120102110021201120112011202121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002110020202002110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202020202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202021201120112011201021201120112010212011201021201021100202020202020212011201021201021100202020202120112010212010211002020212011201021201021100202120102110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002110021212002002121200200212120020021212002002121200200212120020021212002002121200200200212011201120112011201120112011201120102120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202120112121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021201021100212011201021201021100212010211002120112011201120112021212021212021211002110020212021212002120021201120021201120021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021201120112011212002120021201120021201120021201120112002120112011200212011201120112021201121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212010211002120112010212010211002120102110021201120112011202121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002110020202002110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202020202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202021201120112011201021201120112010212011201021201021100202020202020212011201021201021100202020202120112010212010211002020212011201021201021100202120102110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002110021212002002121200200212120020021212002002121200200212120020021212002002121200200200212011201120112010212011201120102120112010212010211002020212011201120212120212120212110021100202120212120021200212011200212011200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212011201120112120021200212011200212011200212011201120021201120112002120112011201120212011212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002120102110021201120102120102110021201021100212011201120112021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021100202020021100212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002020202020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020212011201120112010212011201120102120112010212010211002020202020202120112010212010211002020202021201120102120102110020202120112010212010211002021201021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021100212120020021212002002121200200212120020021212002002121200200212120020021212002002002120112010212010211002020202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020202002020202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020202002020202020202020211002020202020202110020212011201120102120112010212010211002020202020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102021020202102100220202021021021021002210202020202102100221021020202021021002202021020210210210022020210210202102100221020202102102102100220202020202100220202102021021021002202020210202102100220210202021021021002210202102020210210022102021020202102100220202020202100221021020202021021002202020210202102100221020202020210210022021021021020210210022021021021020210210022102021020202102100220202102102021021002210210202021021021002202102102102021000211002121200201021212002120212110021100202121100211002121200212021211002110020212110021100200", + "program": "2120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102021020202102100220202021021021021002210202020202102100221021020202021021002202021020210210210022020210210202102100221020202102102102100220202020202100220202102021021021002202020210202102100220210202021021021002210202102020210210022102021020202102100220202020202100221021020202021021002202020210202102100221020202020210210022021021021020210210022021021021020210210022102021020202102100220202102102021021002210210202021021021002202102102102021000202022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202020202102100220202020202100220202102102021021002210202021020210210022102102020210210210022020210202102102100220210210210202100020212011212011212121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002121200212002120102110020200202022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202020202102100220202020202100220202102102021021002210202021020210210022102102020210210210022020210202102102100220210210210202100021201021212002120021201021100202002120102110021201121200212002120102120112121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021212002120021201021100202002121200212002120102110020200212010212120021200212120021200212120021200212011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120102121200212002120102110020200202020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102020202021021002202020202021002202021021020210210022102020210202102100221021020202102102100220202102021021021002202102102102021000212010212010212120021200212010211002020020211002120102110021201120102121200212002120112002120112002120112010212120021200212010212002120021201121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021212002120021201021100202002121200212002120102110020200212120021200212011200212011200212011201120021201120112002120112120021200212010212002120021212002120021201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212010212120021200212010211002020021201021212002120021201021100202002120112011201021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201021200212002120112002120112002120112011200212011201120021201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120112011201021201120112011202121201121212021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100202022021020202102021002210210210202020210022021020202020210022020202020210022020210202102102100220210202021021021002210202021020210210022020202021021021002202021021020210210022102021020202102100220202020202100221020202020210210022102102020202102100221021020202021021002210202102020210210022020202021021021002202021020210210210022102021020202102100220202102020210210022021021021020210002121200212002120102110020200212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020102020221020202020202100220202020202100221021020202021021002202020210202102100221020202020210210022021021021020210210022021021021020210210022102021020202102100220202102102021021002202020202021002210202021020210210022102102020210210210022020202020210022021021021020210210022102102102102021021002202021020210210210022020202020210022102020202021021002202020202021002210210202020210210022102020202021021002202102102102021021002210210210210202102100220210210210202102100221020202102021021002210210202020210210022102020202021021002202021021020210210022020202020210022021020202021021002210202021021021021002202021020210210210022102021020202102100220202020202100220202021020210022020202021021002210202102102021002202102020210210022102021020210210022102021020210210022102020210202100220210210210202100021212002120021201021200212002120102120021200212011202120112121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201021100212010212010211002120102110021201120212120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002120112011201021201121200212002120102120021200212011202120112121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201021100212010212010211002120102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200211002020200211002120102110021212002120021201120021201120021201120112002120112011200212011212002120021201021200212002121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202020021201021201120112010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020212010211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002110020202020202020202002120102110020212120021200212010212002120021201120212011212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002120102110021201021201021100212010211002120112021212021212021211002110020212021212002120021201021200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002121200212002120102120021200212011200212011200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212011201120102120112120021200212010212002120021201120212011212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002120102110021201021201021100212010211002120112021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021100202020021100212010211002121200212002120112002120112002120112011200212011201120021201121200212002120102120021200212120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020202002120102120112011201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202021201021100202120102120102110020212010211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100211002020202020202020200212010211002021201120212120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002120112011201021201121200212002120102120021200212011202120112121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201021100212010212010211002120102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200211002020200211002120102110021212002120021201120021201120021201120112002120112011200212011212002120021201021200212002121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202020021201021201120112010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020212010211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002110020202020202020202002120102110020212010212010212010212120021200212010211002020020212010212010212010212010212120021200212010211002020020202020211002020202110020212010211002020202022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202102020210210022020202102102102100221020202020210210022102102020202102100220202102021021021002202021021020210210022102020210210210210022020202020210022020210202102102100220202021020210210022021020202102102100221020210202021021002210202102020210210022020202020210022102102020202102100220202021020210210022102020202021021002202102102102021021002202102102102021021002210202102020210210022020210210202102100221021020202102102100220210210210202100021100212011021212002120212110021100202121100211002121200212021211002110020212110021100200", "result": "2210202020202021002202020202021002210210202020210210022020202102021021002210202020202102100220210210210202102100220210210210202102100221020210202021021002202021021020210210022020202020210022102020210202102100221021020202102102100220202020202100220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022102102020202102100221020202020210210022021021021020210210022102102102102021021002202102102102021021002210202021020210210022102102020202102100221020202020210210022020210210202102100220202020202100220210202020210210022102020210210210210022020210202102102100221020210202021021002202020202021002202020210202100220202020210210022102021021020210022021020202102100221020210202102100221020210202102100221020202102021002202102102102021000" } ], "source": "-- Exactly three canonical bytes: reject redundant high zero bits too.\ntrue = t t\nfalse = t\nboth left right = triage false (_ : right) (_ _ : right) left\n\n-- Direct constructor dispatch in this per-bit hot loop avoids repeated pattern\n-- tests. A nonzero numeral's final bit must be true, not a redundant high zero.\ntriage leaf stem fork = t (t leaf stem) fork\nbit? value = triage true (child : triage true (_ : false) (_ _ : false) child) (_ _ : false) value\nbits? number budget = (triage true (_ : false)\n (bit rest : triage false (_ : false)\n (_ remaining : both (bit? bit)\n (triage bit (_ : false) (_ _ : bits? rest remaining) rest))\n budget)\n number)\nbyte? value = bits? value [t t t t t t t t]\n\nmain (t _) = \"Expected a list.\"\nmain [_ | (t _)] = \"Expected a list.\"\nmain [_ | [_ | (t _)]] = \"Expected a list.\"\nmain [r g b] = case both (byte? r) (both (byte? g) (byte? b)) of\n ^true = \"RGB triple accepted.\"\n _ = \"A channel is not a canonical byte (0-255).\"\nmain _ = \"Expected exactly three channels.\"\n", "sourceSha256": "3eec1b9e51ae69a5655e8cd1b79d20fd8f478a6491cc4cdfb4eee63df1b9e254", - "hash": "b7d65492062996f559cc5eb83e68ddc765fd72f5136470eee2104b7b8182b290", + "hash": "a90ff53f2e05424ad536d7b819fb1710dab83127f0516d66384bd9bbe8ddbda2", "mode": "pure", "haskellCases": [ { @@ -410,13 +410,13 @@ { "label": "invalid-subtotal", "source": "q x = x x\nprobe ignored = v1 (q q) (t t) (q q)", - "program": "212121202121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021201120112011201120112011201120112011201120112011212002121202121200212002120112002120102110020212120020021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210210210210202102100221021020210202102100021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011200212011201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011201120021201120112011201120112011201120112011201120021201120112011201120112011201120112011201120112002120112011201120112011201120112011201120112011200212011201120112011201120112011201120112011201120112002120112011201120112011201120112011201120112011201121202121200212002120112002120102110020212120020210021212002110020020220202020210210210022102102102102021021002202021021020210210022102020210202102100221021020202021021002210202021021021021002202102102021020210022102021020202102100220210202021021021002210210202021021021002210202021020210210022102102102102021021002202102102102021021000212011201120112011201120112011201120112011201120102120112011201120112011201120112011201120112010212011201120112011201120112011201120112010212011201120112011201120112011201120102120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002120112120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011201120021201120112011201120112011201120112011201120112120212120021200212011200212010211002021212002002121200211002002022020210202021021002210202102020210210022102102020210210210022020210202102102100221020202102021021002202102102102021021002210202020202102100220202102021021021002210202021020210210022102102102102021021002202102102102021021000212011201120112011201120112011201120112011201021201120112011201120112011201120112011201021201120112011201120112011201120112010212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011201120021201120112011201120112011201120112011201120112002120112011201120112011201120112011201120112011201120021201120112011201120112011201120112011201120112011212021212002120021201120021201021100202121200202100212120021100200202210210202021021021002202020210202102100221020202102021021002202020202102102100220202020210210210022102020210202102100220210210210202102100221021021020202102100221021020202020210022102021020202102100220210210210202102100220202102021021021002210210202021021021000212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011201120021201120112011201120112011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112002120112011201120112011201120112011201120112002120112011201120112011201120112011201120112002120112011201120112011201120112011201120112011200212011201120112011201120112011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011200212011201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011201120021201120112011201120112011201120112011201120021201120112011201120112011201120112011201120112002120112011201120112011201120112011201120112011200212011201120112011201120112011201120112011201120112021212002120021201120021201120021201120112002120112011200212011201120112011212011212120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110020200212120021200212010211002020021212002120021201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212010211002020102121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121200212002121200212002120112021201120112021211002002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021201120102120102110020212010211002020211002120112120021200212011212021201120112021211002002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021201120102120102110020212010211002020211002020210210202021021021021021002121200212002120112002120112002120112010212010211002020200212120021200212011200212011200212011201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212011201021201021100202020220202102020210210022102102102102021021002210202102102021021002210202102020210210022102102020210210210022020210202102102100221020202102021021002210210202020210210002021212002120021201021100202002121200212002120112002120112002120112011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120112010212010211002020202100202121200212002120112011212120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110020202102102102021020210202021002121200212002120102110020200212120021200212011200212011200212011201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212011201021201021100202020220202102020210210022102102102102021021002210202102102021021002210202102020210210022102102020210210210022020210202102102100221020202102021021002210210202020210210002121200212002120112002120112002120112011201121212021201120112021211002002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021201120102120102110020212010211002020211002020210210210202021021021021021002121200212002120102110020200212120021200212011200212011200212011201120021201120112002120112011201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212011201120102120112010212010211002020202022021020202102102100221020210202021021002210210210202021021002210202021020210210022102102102102021021002202102102102021021002210202020202102100220202102102021021000202020202102102102102020210210210210210021201120112011201120102120112011201120102120112011201021201120102120102110020212011201120112010212011201120102120112010212010211002020202021212002120021201021100202002020202121200212002120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201021100202010212011201120112011212021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112002120112002120112011202120112010212120021200212011200212010211002021100212011201021201021100202020021212002120021201120021201120021201120112002120112011200212011201120112120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020200212011201120112011201121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002020020212010211002120112011201120112011212021212002120021212002120021201120202021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020211002021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002110021201021100202110021212002120021212002120021201021100202110020200202121200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011202120112010212120021200212011200212010211002021100212010211002021100212011201120102120112010212010202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002120112011201021201120102120102110020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202021100212120021200212010202121202121100211002021202121200212002120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112011201021201120112011201021201120112010212011201021201021100202020202020211002020202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002020202020202121200212002120102110020200202020202020212120021200212011200212011200212011201021201021100202020020202020202120102110020202020202020020202020202020020202020211002020212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201020212120021200212120021200212011202121202121100211002021202121200212002120112002120112002120112011200212011201120021201120112120021200212120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121200212002121200212002120112021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110021201120102120102110020212010211002020211002020200212011201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100202100202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011021100212011201120112011201021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020202020200202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120112010212010211002120112010212010211002021100202020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100212011201021201021100202120102110020202110020202002120112011201120112011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002021002020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120110211002120112011201120112010212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202020202002020212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201120112011201120102120112011201120102120112011201021201120102120102110021201120112011201120102120112011201120102120112011201021201120102120102110020202120112010212010211002020202020200212011201120112120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110021202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020102110021100211002120102110021212002120021201120021201120021201120112002120112011200212011201120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110021202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020102110021100211002120102110021201120112010212011201021201021100202021201021100212011201120112010212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120112010212010211002020202020202021100202020212011212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100201021100212010211002121200212002120112002120112002120112011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002110020021201021100212011201021201021100202120102110021201120112120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100211002002120102110021100212120021200212011200212011200212011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100212021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200201021100211002110021201021100212011201021201021100202120102110021201120112010212011201021201021100202021201021100212011201120112010212011201120102120112010212010211002020212011201120102120112010212010211002021201120102120102110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110020211002020020212011201120112010212011201120102120112010212010211002020202021201021100202020212120212120021200212120021200212011202020212121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112010212011201120112010212011201120102120112010212010211002020202021201021100202020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202021201021100202020202020211002020202120112011201021201120102120102110020202020211002020211002021212002120021201120212011201021212002120021201120021201021100202110021201021100202110020212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021100212010211002021100212120021200212120021200212010211002021100202002021212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120102121200212002120112002120102110020211002120102110020211002120112011201021201120102120102022021021021020210210022102102102102021021002202021020210210210022020202020210022102020202021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112010212011201021201021100202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020211002121200212002120102021212021211002110020212021212002120021201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120112010212011201120112010212011201120102120112010212010211002020202020202110020202021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110020202020202021212002120021201021100202002020202020202121200212002120112002120112002120112010212010211002020200202020202021201021100202020202020200202020202020200202020202110020202120102110020211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002110021212021212002120021212002120021201120202021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020211002021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002110021201021100202110021212002120021212002120021201021100202110020200202121200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011202120112010212120021200212011200212010211002021100212010211002021100212011201120102120112010212010202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002120112011201021201120102120102110020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202021100212120021200212010202121202121100211002021202121200212002120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112011201021201120112011201021201120112010212011201021201021100202020202020211002020202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002020202020202121200212002120102110020200202020202020212120021200212011200212011200212011201021201021100202020020202020202120102110020202020202020020202020202020020202020211002020212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100211002020210202102102102102100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121200212002120112120021200212120021200212011202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100212011212002120021201121202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100202021021020202102102102102100212120021200212011200212011200212011201021201021100202020021212002120021201120021201120021201120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201120102120102110020202022020210202021021002210210210210202102100221020210210202102100221020210202021021002210210202021021021002202021020210210210022102020210202102100221021020202021021000202121200212002120102110020200212120021200212011200212011200212011201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212011201021201021100202020210020212120021200212011201121212021201120112021211002002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021201120102120102110020212010211002020211002020210210210202102021020202100212120021200212010211002020021212002120021201120021201120021201120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201120102120102110020202022020210202021021002210210210210202102100221020210210202102100221020210202021021002210210202021021021002202021020210210210022102020210202102100221021020202021021000212120021200212011200212011200212011201120112121202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100202021021021020202102102102102100212120021200212010211002020021212002120021201120021201120021201120112002120112011200212011201120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201120112010212011201021201021100202020202202102020210210210022102021020202102100221021021020202102100221020202102021021002210210210210202102100220210210210202102100221020202020210210022020210210202102100020202020210210210210202021021021021021002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020212120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212011200212011200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020200202002120112011201121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002010200211002120102110021201120112010212011201021201021100202021201021100202020202010202020202020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202120112010212010211002020202020202110020202120112010212010211002021201021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100202110021100202020202102021021021021021002120112011201120112010212011201120112010212011201120102120112010212010211002021201120112011201021201120112010212011201021201021100202020212011201021201021100212011212002120021201120021201120021201120112022200202110021201020211002121200212002120112002120112002120112011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120112010212010211002020202202021020202102100221021021021020210210022102021021020210210022102021020202102100221021020202102102100220202102021021021002210202021020210210022102102020202102100021212002120021201120021201120021201120112002120112011200212011201120112021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201120021201120021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002020020200212011201120112120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100201020021100212010211002120112011201021201120102120102110020202120102110020202020201020202020202020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020212011201021201021100202020202020211002020212011201021201021100202120102110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110020211002120112011201120212120112121202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100202020202102102020210202102021021021002121200212002120102110020200212120021200212011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120102110020202100202020202020210202020210210210202021002120112011201021201120102120102110020202120102110021201120112011201120112011201120112011201120112010212011201120112011201120112011201120112011201021201120112011201120112011201120112011201021201120112011201120112011201120112010212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202120112011201120112011201120112011201120112010212011201120112011201120112011201120112010212011201120112011201120112011201120102120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020212011201120112011201120112011201120112010212011201120112011201120112011201120102120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120112011201120112011201021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202020202020202020020202020202020202020202121200212002120102110020200202020202020202020202121200212002120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201021100202010202020202020202020202021202121200212120212120021200212011200212010211002021212002002121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120112002120102110020212120020021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102102020210202100221020210202102102100220210202020210210022020210202102102100221021021021020210210022020210202102102100221020202020210210022020210210202102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002202021021021021002210202102102102100221020202021021002202020202102100220202020210210022020202021021002202020202102100220202020210210022020202021021002202020202021002210210202020210210022102021020202102100220210210210202102100220202102021021021002210210202021021021002210210202102102100220202020202100221021021020202102100220210202021021021002210202020202102100221020210210202102100221021020202102102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002210202020210210022021021021020210022021021021020210022102021020210210022020202021021002202020202102100220202020210210022021021021020210002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011202220020211002120102021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120112002120112002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100202002020021201120112011212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121200212002120112002120112002120112011200212011201120021201120112011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020102002110021201021100212011201120102120112010212010211002020212010211002020202020102020202020202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202021201120102120102110020202020202021100202021201120102120102110020212010211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002021100212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020202020202020202020210202021020202020210202102102102100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011202220020211002120102021100212011201120112011201120112120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212011200212011200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020200202002120112011201121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002010200211002120102110021201120112010212011201021201021100202021201021100202020202010202020202020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202120112010212010211002020202020202110020202120112010212010211002021201021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100202110020210021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212011200212011200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020200202002120112011201121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002010200211002120102110021201120112010212011201021201021100202021201021100202020202010202020202020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202120112010212010211002020202020202110020202120112010212010211002021201021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100202110021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202020202020202102020202102102102020210020202020202020202121200212002120102110020200202020202020202121200212002120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201021100202010202020202020202021202121200212120212120021200212011200212010211002021212002002121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120112002120102110020212120020021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102021020210202100220210210210202102100221021020210202102100220210210210202102100221021021021020210210022102102102021021021002202102102102021021002202020202021002202021020202102100221020210202021021002210210202021021021002202021020210210210022102020210202102100220210210210202102100221020202020210210022020210202102102100221020202102021021002210210210210202102100220210210210202102100220210210210202100020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212011212120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002010212121202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110020102002110021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212011201120112011201021201120112011201021201120112010212011201021201021100202020202020220202102020210210022102102102102021021002210202102102021021002210202102020210210022102102020210210210022020210202102102100221020202102021021002210210202020210210002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202120112121202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110020102121212021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100201020021100212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120112011201120112010212011201120112010212011201120102120112010212010211002020202020202202102020210210210022102021020202102100221021021020202102100221020202102021021002210210210210202102100220210210210202102100221020202020210210022020210210202102100021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201120112011201120102120112011201120102120112011201021201120102120102110020202020202022102020210202102100220210210210202102100220202102021021021002210202102020210210022021020202102102100220210210210202102100221020202020210210022020210202102102100221020202102021021002210210210210202102100220210210210202102100221020202020210210022020210210202102100020202020202121200212002120102110020200202020202121200212002120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201021100202010202020202021202121200212120212120021200212011200212010211002021212002002121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120112002120102110020212120020021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102102020210202100221020210202102102100220210202020210210022020210202102102100221021021021020210210022020210202102102100221020202020210210022020210210202102100220202020202100221020202020210210022021021021020210210022020210202021021002202020202021002210210210202021021002202102020210210210022102020202021021002210202102102021021002210210202021021021002202020202021002210202102102021021002210202102021021021002210210202021021021002202021020210210210022020202020210022021020202021021002210202102020210210022020202020210022102102020202102100221020202020210210022021021021020210210022102102102102021021002202102102102021021002210202021020210210022102102020202102100221020202020210210022020210210202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210022102102020210210210022021021021020210002020212120021200212011202220020211002120102021100212011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112011201021201120112011201021201120112010212011201021201021100202020202020211002020202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002020202020202121200212002120102110020200202020202020212120021200212011200212011200212011201021201021100202020020202020202120102110020202020202020020202020202020020202020211002020212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100202120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002110020210021201120102120102110020212010211002020211002120212110021100202121100211002010212021211002110020212110021100", + "program": "2121212021212002120021201120021201120021212002120021201021200212002120112120212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202120112011202121100200212120021200212011200212011200212120021200212010212002120021201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021201021100202120102110020202110021201120112011201021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100212011201120112010212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002120112011201120102120112011201120112120021212021212002120021201021200211002021201021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210210210210202102100221021020210202102100021212002120021201021200212002120102120021200212010212002120021201120021201121202121200212002120102120021100202120121002121200211002002022020202021021021002210210210210202102100220202102102021021002210202021020210210022102102020202102100221020202102102102100220210210202102021002210202102020210210022021020202102102100221021020202102102100221020202102021021002210210210210202102100220210210210202102100021201021100212011212002120021201021200212002120102120021200212011200212011212021212002120021201021200211002021201021212002110020020220202102020210210022102021020202102100221021020202102102100220202102021021021002210202021020210210022021021021020210210022102020202021021002202021020210210210022102020210202102100221021021021020210210022021021021020210210002120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201121202121200212002120102120021100202120121002121200211002002022102102020210210210022020202102021021002210202021020210210022020202021021021002202020202102102100221020202102021021002202102102102021021002210210210202021021002210210202020202100221020210202021021002202102102102021021002202021020210210210022102102020210210210002121200212002120112002120112002120112011200212011201120021201120112010212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021201120021201120112011212011212120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002020021212002120021201021100202002121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020201021201120112010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212011201120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002120112010212120021200212010212002120021201120212120021200212011212002120021212002120021201120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002120112120021200212011212021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100202021021020202102102102102100212010212120021200212010211002020021201021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202022020210202021021002210210210210202102100221020210210202102100221020210202021021002210210202021021021002202021020210210210022102020210202102100221021020202021021000202121200212002120102110020200212010212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020210020212120021200212010212011212120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002020210210210202102021020202100212120021200212010211002020021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202022020210202021021002210210210210202102100221020210210202102100221020210202021021002210210202021021021002202021020210210210022102020210202102100221021020202021021000212010212120021200212010212011212120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002020210210210202021021021021021002121200212002120102110020200212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020220210202021021021002210202102020210210022102102102020210210022102020210202102100221021021021020210210022021021021020210210022102020202021021002202021021020210210002020202102102102102020210210210210210021201021100202120102110020202121200212002120102110020200202021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202010212011201021201120112120212121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201021212002120021201120021201120021201120112002120112011200212011201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112011201021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002020212010212010211002020202110020202110020212010212120021200212011202120112010212120021200212010212002110020211002120102110020200202120102121200212002120112120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002020021201021201120112121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201021212002120021201120021201120021201120112002120112011200212011201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112011201021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002020212010212010211002020202110020202110020212120021200212011202120112010212120021200212010212002110020211002120102110020200202120102110021201120112120212120021200212120021200212011202020212121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201021212002120021201120021201120021201120112002120112011200212011201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112011201021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002020212010212010211002020202110020202110020212120021200212011202120112010212120021200212010212002110020211002120102110020211002021212002120021201120212011201102121200212002120102120021100202110021201021100202110021100212010211002021100212120021200212120021200212010211002021100202002021212002120021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201121202121200212002120112021201120102121200212002120102120021100202110021201021100202110020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000212010211002120112010212120021200212010212002120021201120212120021200212011202120112011021212002120021201021200211002021100212010211002021100212010211002021201021100212011201021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002020211002120112021212021211002110020212021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020021201021212002120021201021200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120112002120112002120112010212120021200212011200212011200212120021200212011200212011200212011201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002120112010212120021200212010212002120021201021100202120102110021201120102120112010212120021200212010212002120021201021100202120102110020202110020212010211002120112010212120021200212011200212011200212120021200212011200212011200212011201021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021201120102121200212002120102120021200212010211002021201021100202021212002120021201021100202002020212010212120021200212010211002020020202120102110020202020020202020200202021100202120102110020211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002121200212002120102120021200212011202121200212002121200212002120112021212021211002110020212021212002120021201120021201120021201120112002120112011200212011201121200212002121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021212002120021201120212120021200212011200212011200212120021200212011200212011200212120021200212010212002120021201120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100212010211002021201021100202021100202020021201021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100202100202002120102121200212002120102120021200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201102110021201120112010212120021200212010212002120021201021100202120102110020202020020212010211002021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100212010212010211002021100202020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011200212011201120112002120112120021200212011200212011200212011201021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201021200212002121200212002120112021212002120021201120021201120021212002120021201120021201120021212002120021201021200212002120112021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110021201021100202120102110020202110020202002120102120112021212021211002110020212021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020210020200212010212120021200212010212002120021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120110211002120112011201021212002120021201021200212002120102110020212010211002020202002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021201021201021100202120102110020202020021201021201121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120021201121200212002120112002120112002120112011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002010211002110021100212010211002121200212002120102120021200212011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002010211002110021100212010211002120102110020212010211002120102120102120102110021212002120021201021200212002120102120021200212011200212011200212011201021201120021201120021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021201120102120112120021200212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100201021100212010211002121200212002120102120021200212011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002110020021201021100212010211002021201021100212011201121202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002110020021201021100211002121200212002120102120021200212011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002010211002110021100212010211002120102110020212010211002120102110020212010211002120102120102120102110020202120102120102120102110020212010212010211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002021100202002120102110020212010211002021212021212002120021212002120021201120202021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002021100202121200212002120112021201120110212120021200212010212002110020211002120102110020211002110021201021100202110021212002120021212002120021201021100202110020200202121200212002121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120112120212120021200212011202120112010212120021200212010212002110020211002120102110020211002022021021021020210210022102102102102021021002202021020210210210022020202020210022102020202021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100021201021100212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110021201120102120112010212120021200212010212002120021201120212120021200212011202120112011021212002120021201021200211002021100212010211002021100212010211002021201021100202021100212011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002120102121200212002120102120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212011200212011200212011201021212002120021201120021201120021212002120021201120021201120021201120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212011201021212002120021201021200212002120102110020212010211002120112010212011201021212002120021201021200212002120102110020212010211002020211002021201021100212011201021212002120021201120021201120021212002120021201120021201120021201120102120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120112010212120021200212010212002120021201021100202120102110020202121200212002120102110020200202021201021212002120021201021100202002020212010211002020202002020202020020202110020212010211002021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202110020212120021200212011202120112011021212002120021201021200211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212011212021212002120021201120212011201021212002120021201021200211002021100212010211002021100202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002120102110021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002120112010212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021100202021020210210210210210021212002120021201021200212002120112021212002120021201121200212002121200212002120112021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100212011212002120021201121202120112011202121100200212120021200212011200212011200212120021200212010212002120021201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021201021100202120102110020202110020202102102020210210210210210021201021212002120021201021100202002120102121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020202202021020202102100221021021021020210210022102021021020210210022102021020202102100221021020202102102100220202102021021021002210202021020210210022102102020202102100020212120021200212010211002020021201021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202021002021212002120021201021201121212021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100202021021021020210202102020210021212002120021201021100202002121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020202202021020202102100221021021021020210210022102021021020210210022102021020202102100221021020202102102100220202102021021021002210202021020210210022102102020202102100021201021212002120021201021201121212021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100202021021021020202102102102102100212120021200212010211002020021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202022021020202102102100221020210202021021002210210210202021021002210202021020210210022102102102102021021002202102102102021021002210202020202102100220202102102021021000202020210210210210202021021021021021002120102110020212010211002020212120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100202002020021201121200212002120102120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212010212002120021201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002010200211002120102110021201021100202120102110020202020102020202020200212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020211002110020202020210202102102102102100212010211002021201021100202021201021100212011212002120021201021200212002120112022200202110020202110021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202022020210202021021002210210210210202102100221020210210202102100221020210202021021002210210202021021021002202021020210210210022102020210202102100221021020202021021000212010212120021200212010212002120021201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100202002020021201121200212002120102120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212010212002120021201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002010200211002120102110021201021100202120102110020202020102020202020200212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020211002120112021212011212120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002020202021021020202102021020210210210021212002120021201021100202002121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020202100202020202020210202020210210210202021002120102110020212010211002120102110020212010211002020212010211002020202120102110020202020200202020202121200212002120102110020200202020202121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020201020202020202120212120021212021212002120021201021200211002021201021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201021200211002021201021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102102020210202100221020210202102102100220210202020210210022020210202102102100221021021021020210210022020210202102102100221020202020210210022020210210202102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002202021021021021002210202102102102100221020202021021002202020202102100220202020210210022020202021021002202020202102100220202020210210022020202021021002202020202021002210210202020210210022102021020202102100220210210210202102100220202102021021021002210210202021021021002210210202102102100220202020202100221021021020202102100220210202021021021002210202020202102100221020210210202102100221021020202102102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002210202020210210022021021021020210022021021021020210022102021020210210022020202021021002202020202102100220202020210210022021021021020210002020212120021200212010212002120021201120222002021100202021100212120021200212011202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120102120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110020200212120021200212010212002120021201120021201120021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002020020200212011212002120021201021200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120102120021200212011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020102002110021201021100212010211002021201021100202020201020202020202002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212010212010211002021201021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100202110021201021100202020202020202021020202102020202021020210210210210020212120021200212011202220020211002020211002120112120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100202002020021201121200212002120102120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212010212002120021201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002010200211002120102110021201021100202120102110020202020102020202020200212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020211002021002120102110021212002120021201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100202002020021201121200212002120102120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212010212002120021201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002010200211002120102110021201021100202120102110020202020102020202020200212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020211002120102110020202020202102020202102102102020210020202020212120021200212010211002020020202020212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020102020202020212021212002121202121200212002120102120021100202120102121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120102120021100202120102121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202102021020210022021021021020210210022102102021020210210022021021021020210210022102102102102021021002210210210202102102100220210210210202102100220202020202100220202102020210210022102021020202102100221021020202102102100220202102021021021002210202021020210210022021021021020210210022102020202021021002202021020210210210022102020210202102100221021021021020210210022021021021020210210022021021021020210002021201021201021212002120021201120212011212120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110020102121212021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002010200211002120102110021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202022020210202021021002210210210210202102100221020210210202102100221020210202021021002210210202021021021002202021020210210210022102020210202102100221021020202021021000212120021200212011202120112121202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100201021212120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110020102002110021201021100212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020220210202021021021002210202102020210210022102102102020210210022102020210202102100221021021021020210210022021021021020210210022102020202021021002202021021020210210002121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020202210202021020210210022021021021020210210022020210202102102100221020210202021021002202102020210210210022021021021020210210022102020202021021002202021020210210210022102020210202102100221021021021020210210022021021021020210210022102020202021021002202021021020210210002020202021212002120021201021100202002020202021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202010202020202021202121200212120212120021200212010212002110020212010212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212010212002110020212010212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221021020202102021002210202102021021021002202102020202102100220202102021021021002210210210210202102100220202102021021021002210202020202102100220202102102021021002202020202021002210202020202102100220210210210202102100220202102020210210022020202020210022102102102020210210022021020202102102100221020202020210210022102021021020210210022102102020210210210022020202020210022102021021020210210022102021020210210210022102102020210210210022020210202102102100220202020202100220210202020210210022102021020202102100220202020202100221021020202021021002210202020202102100220210210210202102100221021021021020210210022021021021020210210022102020210202102100221021020202021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100221021020202102102100220210210210202100020202121200212002120112022200202110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020212021212021211002110020212021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020021201021212002120021201021200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120112002120112002120112010212120021200212011200212011200212120021200212011200212011200212011201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002120112010212120021200212010212002120021201021100202120102110021201120102120112010212120021200212010212002120021201021100202120102110020202110020212010211002120112010212120021200212011200212011200212120021200212011200212011200212011201021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021201120102121200212002120102120021200212010211002021201021100202021212002120021201021100202002020212010212120021200212010211002020020202120102110020202020020202020200202021100202120102110020211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100211002021002120102110020212010211002020211002120212110021100202121100211002010212021211002110020212110021100", "result": "222210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000022221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000202221021020202102021002210202102021021021002202102020202102100220202102021021021002210210210210202102100220202102021021021002210202020202102100220202102102021021002202020202021002210202020202102100220210210210202102100220202102020210210022020202020210022102102102020210210022021020202102102100221020202020210210022102021021020210210022102102020210210210022020202020210022102021021020210210022102021020210210210022102102020210210210022020210202102102100220202020202100220210202020210210022102021020202102100220202020202100221021020202021021002210202020202102100220210210210202102100221021021021020210210022021021021020210210022102020210202102100221021020202021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100221021020202102102100220210210210202100000" } ], "source": "-- Shipping policy: arguments are destination, cart subtotal in cents, grams.\n-- Destinations: domestic, regional, international. Grams: 1..5000.\n-- Select v1/v2 with the same cart: domestic free shipping changes from $75 to $100.\n-- Otherwise domestic costs $4.99/$5.99, regional $9.99, international $19.99.\n-- Packages above 1kg add $2.50. Subtotals are bounded to $10,000.\n-- The bundle hash + export pins the policy used to reproduce a quote later.\n-- Preparation closes practical-support.tri and selected base helpers into code.\n\nbaseRate 1 \"domestic\" = 499\nbaseRate _ \"domestic\" = 599\nbaseRate _ \"regional\" = 999\nbaseRate _ _ = 1999\n\npaidRate version zone grams = case lessEq grams 1000 of\n ^true = baseRate version zone\n _ = addBinary 250 (baseRate version zone)\n\nfreeThreshold 1 = 7500\nfreeThreshold _ = 10000\n\namount version zone subtotal grams = case and? (equal? zone \"domestic\") (lessEq (freeThreshold version) subtotal) of\n ^true = 0\n _ = paidRate version zone grams\n\nquote version zone subtotal grams = case and? (natural? subtotal) (natural? grams) of\n ^true = (case or? (equal? zone \"domestic\") (or? (equal? zone \"regional\") (equal? zone \"international\")) of\n ^true = (case and? (lessEq subtotal 1000000) (and? (lessEq 1 grams) (lessEq grams 5000)) of\n ^true = [(stringField \"status\" \"ok\") (numberField \"policyVersion\" version)\n (stringField \"destination\" zone) (numberField \"shippingCents\" (amount version zone subtotal grams))]\n _ = failure \"Subtotal must be <=1000000 cents; grams must be 1..5000.\")\n _ = failure \"Unknown destination.\")\n _ = failure \"Subtotal and grams must be canonical natural numbers.\"\n\nv1 zone subtotal grams = quote 1 zone subtotal grams\nv2 zone subtotal grams = quote 2 zone subtotal grams\n", "sourceSha256": "6738b22bab5fe1a349404eefa0368cb4e492d6b7a6b0cf679ab4a146ee8b0aa2", - "hash": "ed25157519948f241d302c20837c5c291bf675e165117c9f046f4dcc8651c8c9", + "hash": "efbdff446802ddcfe353461dce3ea75b60187fce601f0f47cfe7320511aea02e", "mode": "pure", "haskellCases": [ { @@ -761,19 +761,19 @@ { "label": "unknown-event", "source": "q x = x x\nprobe ignored = vendorA [\"unknown\" (q q) (q q)]", - "program": "21202121202121200212002120112121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202120212120021212021212002120021201120021201021100202121200200212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212011200212010211002021212002002121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202102020202100220202021021021021002202020202102102100221020210202021021002210210202020210210022020210202102102100221020210202021021002202021020202102100220202020202100221020210202021021002202020210210210210022102020202021021002210210202020210210022020210202102102100220202102102021021002210202021021021021002202020202021002202021020210210210022020202102021021002202102020210210210022102021020202102100221020210202021021002202020202021002202102102020210210022102020210202102100221020210202021021002202021021020210210022020210202021021002210210202021021021002202102102102021000202120212120021212021212002120021201120021201021100202121200200212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212011200212010211002021212002002121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202102020202100220202021021021021002202020202102102100221020210202021021002210210202020210210022020210202102102100221020210202021021002202021020202102100220202020202100221020202020210210022020202020210022020210210202102100221020202102021021002210210202021021021002202021020210210210022021021021020210002120112011201121201121212120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201021100202002021202121200212120212120021200212011200212010211002021212002002121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120112002120102110020212120020021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202020202102100220202020202100220202102102021021002210202021020210210022102102020210210210022020210202102102100220210210210202100021212002120021201120021201120021201120102120102110020202002120102110021201120112011212002120021201120112121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120102110020200212120021200212010211002020021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112010212011201021201021100202020200202020212021212002121202121200212002120112002120102110020212120020021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201120021201021100202121200200212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102020202021021002202020202021002202021021020210210022102020210202102100221021020202102102100220202102021021021002202102102102021000212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202020020202110021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212010211002020021212002120021201021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201021201120102120102110020202020021212002120021201120021201120021201120112002120112011200212011201120102120112010212010211002020202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112002120112011201120112011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112002120112011201120112011201120112011201120112002120112011201120112011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112002120112011201120112011201120112011201120112002120112011201120112011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112002120112011201120112011201120112011201120112002120112011201120112011201120112011201120112002120112011201120112011201120112011201120112010212011201120112011201120112011201120112010212011201120112011201120112011201120102120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020212011201120112011201120112011201120102120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020202021201120112011201021201120112010212011201021201021100202020202020202020212011201021201021100202020202020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202020020202020202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020202002020202020202020202021100202020202020202021100202020212011201120102120112010212010211002020202020202120212120021212021212002120021201120021201021100202121200200212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212011200212010211002021212002002121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202102020202100220202021021021021002202020202102102100221020210202021021002210210202020210210022020210202102102100221020210202021021002202021020202102100220202020202100221020210202021021002202020210210210210022102020202021021002210210202020210210022020210202102102100220202102102021021002210202021021021021002202020202021002202021020210210210022020202102021021002202102020210210210022102021020202102100221020210202021021002202020202021002202102102020210210022102020210202102100221020210202021021002202021021020210210022020210202021021002210210202021021021002202102102102021000202110020212120021200212011200212011200212011212002120021201120021201120021212002120021201120021201120021201120112021201120112021211002002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021201120102120102110020212010211002020211002121200212002120112002120112002120112011200212011201120021201120112011212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112021201120112021211002002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021201120102120102110020212010211002020211002120112011201120112011201120112011212002121202121200212002120112002120102110020212120020210021212002110020020221021020202102102100221021020202021021002202020210202102100221020210202021021002210202102102021021002210202020202102100220210210202102021002210202102020210210022021020202102102100221021020202102102100221020202102021021002210210210210202102100220210210210202102100020210021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011212021212002120021201120021201021100202121200200212120021100200202210202102020210210022021021020210210210022102021020202102100220210210210202102100220202102021021021002202021020210202100221020202102102102100220202020210210210022102021020202102100021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011212021212002120021201120021201021100202121200200212120021100200202210210202020210210022102021020210210210022102102020210210210022020210202102102100221021021021020210210022102021021020210210022102021020202102100220210202021021021000212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201121202121200212002120112002120102110020212120020210021212002110020020221020202020210210022102021021020210210022102102102102021021002210202102021021021002202102102102021021002202021020210210210022102102020202021002210202102020210210022021021021020210210022020210202102102100221021020202102102100021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202020200202020202020202121200212002120102110020200202020202020212120021200212011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120102110020201020202020202020212021212002121202121200212002120112002120102110020212120020021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201120021201021100202121200200212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020202020210210022102021021020210210022102102102102021021002210202102021021021002202102102102021021002202021020210210210022102102020202021002210202102020210210022021021021020210210022020210202102102100221021020202102102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002210202020202102100220202020202100221021020202021021002210202020202102100220210210210202102100221021021021020210210022021021021020210210022102020210202102100221021020202021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022020210210210210022102021021021021002210202020210210022020202021021002202020202102100220202020210210022020202021021002202020202102100220202020210210022021021021020210002020212120021200212011200212011200212011201120021201120112002120112011201120222002021100212010202110021201120112011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112011201021201120112011201021201120112010212011201021201021100202020202020211002020202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002020202020202121200212002120102110020200202020202020212120021200212011200212011200212011201021201021100202020020202020202120102110020202020202020020202020202020020202020211002020212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212011200212011200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020200202002120112011201121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002010200211002120102110021201120112010212011201021201021100202021201021100202020202010202020202020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202120112010212010211002020202020202110020202120112010212010211002021201021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100202110021201120112010212011201021201021100202020202020202020202102020210202020202102021021021021002020202021212002120021201021100202002020202121200212002120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201021100202010202020202120212120021212021212002120021201120021201021100202121200200212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212011200212010211002021212002002121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210210202020210210022102021020210210210022102102020210210210022020210202102102100221021021021020210210022102021021020210210022102021020202102100220210202021021021002202020202021002210202102102021021002210202102021021021002210210202021021021002202021020210210210022020202020210022021020202021021002210202102020210210022020202020210022102102020210210210022102102020202102100221020202020210210022020210210202102100221020202020210210022021020202102102100220202020202100220202102021021021002210202102020210210022020202102102102100220202102021021021002202102102102021000202120112021212021211002110020212021212002120021201121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020102020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201021201120102120102110020202020202121200212002120102110020200202020202121200212002120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201021100202010202020202020020202120112021212120021200212120021200212011200212011200212120021200212011200212011200212011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112022200202110021201020211002121200212002120112002120112002120112011200212011201120021201120112011202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120112002120112002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100202002020021201120112011212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121200212002120112002120112002120112011200212011201120021201120112011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020102002110021201021100212011201120102120112010212010211002020212010211002020202020102020202020202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202021201120102120102110020202020202021100202021201120102120102110020212010211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002021100212011201120102120112010212010211002020202021021021021021021021021021021021021021021021021020202020210021201120112011202210200212010200212120021200212011200212011200212011201120021201120112002120112011201120222002021100212010202110021201120112011212021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201120021201120021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002020020200212011201120112120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100201020021100212010211002120112011201021201120102120102110020202120102110020202020201020202020202020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020212011201021201021100202020202020211002020212011201021201021100202120102110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110020211002020202020202020202020202102102021021002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201120021201120021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002020020200212011201120112120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100201020021100212010211002120112011201021201120102120102110020202120102110020202020201020202020202020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020212011201021201021100202020202020211002020212011201021201021100202120102110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110020211002120112011201021201120102120102110020202020210210210210210210210210210210210210210202102100202021212002120021201021100202002021212002120021201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212010211002020102020200212021212021211002110020212021212002120021201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120112010212011201120112010212011201120102120112010212010211002020202020202110020202021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110020202020202021212002120021201021100202002020202020202121200212002120112002120112002120112010212010211002020200202020202021201021100202020202020200202020202020200202020202110020202120102110020211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100211002120102110020211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002022102102102102021021002202102020210210210022020210202021021002210202102020210210022021020202102102100220210210210202100221021020202021021002202102020210210210022102021020202102100221020202020210210022020210202102102100221020210202021021002202021020202102100021201120112010212011201021201021100202120112010212010211002020212120021200212010211002020021212002120021201120021201120021201120112002120112011200212011201120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201120112010212011201021201021100202020202202020202102102100221020210202102102100220210202021021021002210210202020210210022020202102021021002210202020202102100221021020202102102100221020210202021021000212120021200212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112021201120112021211002002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021201120102120102110020212010211002020211002120112011201120112011201120112011212002121202121200212002120112002120102110020212120020210021212002110020020221021020202102102100221021020202021021002202020210202102100221020210202021021002210202102102021021002210202020202102100220210210202102021002210202102020210210022021020202102102100221021020202102102100221020202102021021002210210210210202102100220210210210202102100020210021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011212021212002120021201120021201021100202121200200212120021100200202210202102020210210022021021020210210210022102021020202102100220210210210202102100220202102021021021002202021020210202100221020202102102102100220202020210210210022102021020202102100021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011212021212002120021201120021201021100202121200200212120021100200202210210202020210210022102021020210210210022102102020210210210022020210202102102100221021021021020210210022102021021020210210022102021020202102100220210202021021021000212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201121202121200212002120112002120102110020212120020210021212002110020020221020202020210210022102021021020210210022102102102102021021002210202102021021021002202102102102021021002202021020210210210022102102020202021002210202102020210210022021021021020210210022020210202102102100221021020202102102100021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202020200202020202020202121200212002120102110020200202020202020212120021200212011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120102110020201020202020202020212021212002121202121200212002120112002120102110020212120020021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201120021201021100202121200200212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020202020210210022102021021020210210022102102102102021021002210202102021021021002202102102102021021002202021020210210210022102102020202021002210202102020210210022021021021020210210022020210202102102100221021020202102102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002210202020202102100220202020202100221021020202021021002210202020202102100220210210210202102100221021021021020210210022021021021020210210022102020210202102100221021020202021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022020210210210210022102021021021021002210202020210210022020202021021002202020202102100220202020210210022020202021021002202020202102100220202020210210022021021021020210002020212120021200212011200212011200212011201120021201120112002120112011201120222002021100212010202110021201120112011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112011201021201120112011201021201120112010212011201021201021100202020202020211002020202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002020202020202121200212002120102110020200202020202020212120021200212011200212011200212011201021201021100202020020202020202120102110020202020202020020202020202020020202020211002020212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212011200212011200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020200202002120112011201121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002010200211002120102110021201120112010212011201021201021100202021201021100202020202010202020202020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202120112010212010211002020202020202110020202120112010212010211002021201021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100202110021201120112010212011201021201021100202020202020202020202102020210202020202102021021021021002020202021212002120021201021100202002020202121200212002120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201021100202010202020202120212120021212021212002120021201120021201021100202121200200212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212011200212010211002021212002002121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210210202020210210022102021020210210210022102102020210210210022020210202102102100221021021021020210210022102021021020210210022102021020202102100220210202021021021002202020202021002210202102102021021002210202102021021021002210210202021021021002202021020210210210022020202020210022021020202021021002210202102020210210022020202020210022102102020210210210022102102020202102100221020202020210210022020210210202102100221020202020210210022021020202102102100220202020202100220202102021021021002210202102020210210022020202102102102100220202102021021021002202102102102021000202120112021212021211002110020212021212002120021201121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020102020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201021201120102120102110020202020202121200212002120102110020200202020202121200212002120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201021100202010202020202020020202120112021212120021200212120021200212011200212011200212120021200212011200212011200212011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112022200202110021201020211002121200212002120112002120112002120112011200212011201120021201120112011202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120112002120112002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100202002020021201120112011212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121200212002120112002120112002120112011200212011201120021201120112011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020102002110021201021100212011201120102120112010212010211002020212010211002020202020102020202020202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202021201120102120102110020202020202021100202021201120102120102110020212010211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002021100212011201120102120112010212010211002020202021021021021021021021021021021021021021021021021020202020210021201120112011202210200212010200212120021200212011200212011200212011201120021201120112002120112011201120222002021100212010202110021201120112011212021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201120021201120021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002020020200212011201120112120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100201020021100212010211002120112011201021201120102120102110020202120102110020202020201020202020202020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020212011201021201021100202020202020211002020212011201021201021100202120102110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110020211002020202020202020202020202102102021021002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201120021201120021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002020020200212011201120112120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100201020021100212010211002120112011201021201120102120102110020202120102110020202020201020202020202020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020212011201021201021100202020202020211002020212011201021201021100202120102110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110020211002120112011201021201120102120102110020202020210210210210210210210210210210210210210202102100202021212002120021201021100202002021212002120021201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212010211002020102020200212021212021211002110020212021212002120021201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120112010212011201120112010212011201120102120112010212010211002020202020202110020202021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110020202020202021212002120021201021100202002020202020202121200212002120112002120112002120112010212010211002020200202020202021201021100202020202020200202020202020200202020202110020202120102110020211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100211002120102110020211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002022102102102102021021002202102020210210210022020210202021021002210202102020210210022021020202102102100220210210210202100220210202021021021002210202102020210210022021021020202102100221020210202102102100220210210210202102100220202102020210210022102021020202102100220202102020210210002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202121200212002120102110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120112011201120102120112011201021201120102120102110020202020202202102020210210210022102021020202102100220210210202021021002210202102021021021002202102102102021021002202021020202102100020202020212021212002121202121200212002120112002120102110020212120020021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201120021201021100202121200200212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020210202102021002202102102102021021002210210202102021021002202102102102021021002210210210210202102100221021021020210210210022021021021020210210022020202020210022021021020210210210022102021020202102100220210210210202102100220202102020210210022102102102102021021002202102020210210210022020202020210022102020202020210022020202020210022102021020202102100220210210202102102100221020210202021021002202102102102021021002202021020210210210022021021021020210002110021212002022102021020210210210022021021021020210210022102102021020210210022021021021020210210022102102102102021021002210210210202102102100220210210210202102100021212002120212110021100202121100211002121200212021211002110020212110021100200", + "program": "212021212021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021202121200212120212120021200212010212002110020212010212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212010212002110020212010212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102021020202102100220202021021021021002210202020202102100221021020202021021002202021020210210210022020210210202102100221020202102102102100220202020202100220202102021021021002202020210202102100220210202021021021002210202102020210210022102021020202102100220202020202100220210210202021021002210202021020210210022102021020202102100220202102102021021002202021020202102100221021020202102102100220210210210202100020212021212002121202121200212002120102120021100202120102121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120102120021100202120102121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202102020202100220202021021021021002202020202102102100221020210202021021002210210202020210210022020210202102102100221020210202021021002202021020202102100220202020202100221020202020210210022020202020210022020210210202102100221020202102021021002210210202021021021002202021020210210210022021021021020210002120102120112011212011212121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002121200212002120102110020200202120212120021212021212002120021201021200211002021201021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201021200211002021201021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202020202102100220202020202100220202102102021021002210202021020210210022102102020210210210022020210202102102100220210210210202100021201021212002120021201021100202002120102110021201120112120021200212010212011212121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002121200212002120102110020200212120021200212010211002020021201021212002120021212002120021212002120021201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212010212120021200212010211002020020202120212120021212021212002120021201021200211002021201021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201021200211002021201021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202020202102100220202020202100220202102102021021002210202021020210210022102102020210210210022020210202102102100220210210210202100021201021201021212002120021201021100202002021100212010211002120112011201021212002120021201120021201120021201120112002120112011200212011201120102121200212002120112002120112002120112010212011200212011200212011201121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021212002120021201021100202002121200212002120102110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201121200212002120102120021200212120021200212011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120102121200212002120102110020200212010212120021200212010211002020021201120112011201021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021201120112011201021212002120021201120021201120021201120112002120112011200212011201120102120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020212010211002020212010212010212010212120021200212010211002020020202120102120102120102120102121200212002120102110020200202020202021100202020202110020202120102110020202020212021212002121202121200212002120102120021100202120102121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120102120021100202120102121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202102020202100220202021021021021002202020202102102100221020210202021021002210210202020210210022020210202102102100221020210202021021002202021020202102100220202020202100221020210202021021002202020210210210210022102020202021021002210210202020210210022020210202102102100220202102102021021002210202021021021021002202020202021002202021020210210210022020202102021021002202102020210210210022102021020202102100221020210202021021002202020202021002202102102020210210022102020210202102100221020210202021021002202021021020210210022020210202021021002210210202021021021002202102102102021000202110020212120021200212011200212011200212011212002120021201120021201120021212002120021201120021201120021201120112021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100212011201021212002120021201021200212002120112120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112010212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202120112011202121100200212120021200212011200212011200212120021200212010212002120021201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021201021100202120102110020202110021201120112010212120021200212011200212011200212011201120021201120112002120112011201021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002120112011201021201120112011212002121202121200212002120102120021100202120121002121200211002002022102102020210210210022102102020202102100220202021020210210022102021020202102100221020210210202102100221020202020210210022021021020210202100221020210202021021002202102020210210210022102102020210210210022102020210202102100221021021021020210210022021021021020210210002021002121200212002120102120021200212010212002120021201120021201121202121200212002120102120021100202120102121200211002002022102021020202102100220210210202102102100221020210202021021002202102102102021021002202021020210210210022020210202102021002210202021021021021002202020202102102100221020210202021021000212010211002021212002120021201021200212002120112002120112120212120021200212010212002110020212010212120021100200202210210202020210210022102021020210210210022102102020210210210022020210202102102100221021021021020210210022102021021020210210022102021020202102100220210202021021021000212010211002021212002120021201120021201121202121200212002120102120021100202120121002121200211002002022102020202021021002210202102102021021002210210210210202102100221020210202102102100220210210210202102100220202102021021021002210210202020202100221020210202021021002202102102102021021002202021020210210210022102102020210210210002120102110020200202020212120021200212010211002020020202021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202010202020202120212120021212021212002120021201021200211002021201021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201021200211002021201021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102020202021021002210202102102021021002210210210210202102100221020210202102102100220210210210202102100220202102021021021002210210202020202100221020210202021021002202102102102021021002202021020210210210022102102020210210210022020202020210022102021021020210210022102021020210210210022102102020210210210022020210202102102100220202020202100220210202020210210022102021020202102100220202020202100221020202020210210022020202020210022102102020202102100221020202020210210022021021021020210210022102102102102021021002202102102102021021002210202021020210210022102102020202102100221020202020210210022020210210202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202021021021021002210202102102102100221020202021021002202020202102100220202020210210022020202021021002202020202102100220202020210210022020202021021002202102102102021000202021212002120021201120222002021100202021100212011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002120102121200212002120102120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212011200212011200212011201021212002120021201120021201120021212002120021201120021201120021201120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212011201021212002120021201021200212002120102110020212010211002120112010212011201021212002120021201021200212002120102110020212010211002020211002021201021100212011201021212002120021201120021201120021212002120021201120021201120021201120102120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120112010212120021200212010212002120021201021100202120102110020202121200212002120102110020200202021201021212002120021201021100202002020212010211002020202002020202020020202110020212010211002021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100212120021200212011202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120102120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110020200212120021200212010212002120021201120021201120021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002020020200212011212002120021201021200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120102120021200212011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020102002110021201021100212010211002021201021100202020201020202020202002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212010212010211002021201021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100202110021201021100202020202020202021020202102020202021020210210210210020202021212002120021201021100202002020202121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020201020202020212021212002121202121200212002120102120021100202120102121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120102120021100202120102121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210210202020210210022102021020210210210022102102020210210210022020210202102102100221021021021020210210022102021021020210210022102021020202102100220210202021021021002202020202021002210202102102021021002210202102021021021002210210202021021021002202021020210210210022020202020210022021020202021021002210202102020210210022020202020210022102102020210210210022102102020202102100221020202020210210022020210210202102100221020202020210210022021020202102102100220202020202100220202102021021021002210202102020210210022020202102102102100220202102021021021002202102102102021000202120112021212021211002110020212021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020021201021212002120021201021200212002121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212011201120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002120112010212120021200212010212002120021201021100202120102110020202121200212002120102110020200202021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202010202020200202120112021212120021200212120021200212010212002120021212002120021201120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002120102121200212002120112022200202110020202110021212002120021201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100202002020021201121200212002120102120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212010212002120021201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002010200211002120102110021201021100202120102110020202020102020202020200212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020211002120102110020202102102102102102102102102102102102102102102102102020202021002120112022102002020021212002120021201120222002021100202021100212011212021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201021200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100202002121200212002120102120021200212011200212011200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020200202002120112120021200212010212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201021200212002120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100201020021100212010211002120102110020212010211002020202010202020202020021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202120102120102110020212010211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002021100202020202020202020202020210210202102100212010211002121200212002120112021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201021200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100202002121200212002120102120021200212011200212011200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020200202002120112120021200212010212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201021200212002120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100201020021100212010211002120102110020212010211002020202010202020202020021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202120102120102110020212010211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002021100212010211002020210210210210210210210210210210210210210202102100202121200212002120102110020200202121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020201020202002120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002110021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020221021021021020210210022021020202102102100220202102020210210022102021020202102100220210202021021021002202102102102021002210210202020210210022021020202102102100221020210202021021002210202020202102100220202102021021021002210202102020210210022020210202021021000212010211002021201021100202021212002120021201021100202002120102120102121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020202202020202102102100221020210202102102100220210202021021021002210210202020210210022020202102021021002210202020202102100221021020202102102100221020210202021021000212120021200212011200212011200212011201120021201120112002120112011201021201121200212002120112002120112002121200212002120112002120112002120112011202120112011202121100200212120021200212011200212011200212120021200212010212002120021201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021201021100202120102110020202110021201120102121200212002120102120021200212011212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002120112011201021212002120021201120021201120021201120112002120112011200212011201120102121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120102120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100212011201120102120112011201121200212120212120021200212010212002110020212012100212120021100200202210210202021021021002210210202020210210022020202102021021002210202102020210210022102021021020210210022102020202021021002202102102021020210022102021020202102100220210202021021021002210210202021021021002210202021020210210022102102102102021021002202102102102021021000202100212120021200212010212002120021201021200212002120112002120112120212120021200212010212002110020212010212120021100200202210202102020210210022021021020210210210022102021020202102100220210210210202102100220202102021021021002202021020210202100221020202102102102100220202020210210210022102021020202102100021201021100202121200212002120102120021200212011200212011212021212002120021201021200211002021201021212002110020020221021020202021021002210202102021021021002210210202021021021002202021020210210210022102102102102021021002210202102102021021002210202102020210210022021020202102102100021201021100202121200212002120112002120112120212120021200212010212002110020212012100212120021100200202210202020202102100221020210210202102100221021021021020210210022102021020210210210022021021021020210210022020210202102102100221021020202020210022102021020202102100220210210210202102100220202102021021021002210210202021021021000212010211002020020202021212002120021201021100202002020202121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020201020202020212021212002121202121200212002120102120021100202120102121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120102120021100202120102121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202020202102100221020210210202102100221021021021020210210022102021020210210210022021021021020210210022020210202102102100221021020202020210022102021020202102100220210210210202102100220202102021021021002210210202021021021002202020202021002210202102102021021002210202102021021021002210210202021021021002202021020210210210022020202020210022021020202021021002210202102020210210022020202020210022102020202021021002202020202021002210210202020210210022102020202021021002202102102102021021002210210210210202102100220210210210202102100221020202102021021002210210202020210210022102020202021021002202021021020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220202102102102100221020210210210210022102020202102100220202020210210022020202021021002202020202102100220202020210210022020202021021002202020202102100220210210210202100020202121200212002120112022200202110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021212002120021201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100202002020021201121200212002120102120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212010212002120021201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002010200211002120102110021201021100202120102110020202020102020202020200212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020211002120102110020202020202020202102020210202020202102021021021021002020202121200212002120102110020200202020212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020102020202021202121200212120212120021200212010212002110020212010212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212010212002110020212010212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221021020202021021002210202102021021021002210210202021021021002202021020210210210022102102102102021021002210202102102021021002210202102020210210022021020202102102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002210210202021021021002210210202020210210022102020202021021002202021021020210210022102020202021021002202102020210210210022020202020210022020210202102102100221020210202021021002202020210210210210022020210202102102100220210210210202100020212011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002120102121200212002120102120021200212120021200212011200212011200212120021200212011200212011200212011201021201120021201120021212002120021201120021201120021201120112021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020201020202020020212011202121212002120021212002120021201021200212002121200212002120112021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100212010212120021200212011202220020211002020211002121200212002120112021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201021200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100202002121200212002120102120021200212011200212011200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020200202002120112120021200212010212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201021200212002120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100201020021100212010211002120102110020212010211002020202010202020202020021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202120102120102110020212010211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002021100212010211002020210210210210210210210210210210210210210210210210202020202100212011202210200202002121200212002120112022200202110020202110021201121202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120102120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110020200212120021200212010212002120021201120021201120021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002020020200212011212002120021201021200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120102120021200212011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020102002110021201021100212010211002021201021100202020201020202020202002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212010212010211002021201021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100202110020202020202020202020202021021020210210021201021100212120021200212011202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120102120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110020200212120021200212010212002120021201120021201120021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002020020200212011212002120021201021200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120102120021200212011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020102002110021201021100212010211002021201021100202020201020202020202002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212010212010211002021201021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100202110021201021100202021021021021021021021021021021021021021020210210020212120021200212010211002020020212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020102020200212021212021211002110020212021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020021201021212002120021201021200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120112002120112002120112010212120021200212011200212011200212120021200212011200212011200212011201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002120112010212120021200212010212002120021201021100202120102110021201120102120112010212120021200212010212002120021201021100202120102110020202110020212010211002120112010212120021200212011200212011200212120021200212011200212011200212011201021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021201120102121200212002120102120021200212010211002021201021100202021212002120021201021100202002020212010212120021200212010211002020020202120102110020202020020202020200202021100202120102110020211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100211002120102110020211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002022102102102102021021002202102020210210210022020210202021021002210202102020210210022021020202102102100220210210210202100220210202021021021002210202102020210210022021021020202102100221020210202102102100220210210210202102100220202102020210210022102021020202102100220202102020210210002120102110020212010211002020212120021200212010211002020021201021201021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202022021020202102102100221020210202021021002202102102020210210022102021020210210210022021021021020210210022020210202021021000202020202120212120021212021212002120021201021200211002021201021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201021200211002021201021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102021020210202100220210210210202102100221021020210202102100220210210210202102100221021021021020210210022102102102021021021002202102102102021021002202020202021002202102102021021021002210202102020210210022021021021020210210022020210202021021002210210210210202102100220210202021021021002202020202021002210202020202021002202020202021002210202102020210210022021021020210210210022102021020202102100220210210210202102100220202102021021021002202102102102021000211002120122102021020210210210022021021021020210210022102102021020210210022021021021020210210022102102102102021021002210210210202102102100220210210210202102100021212002120212110021100202121100211002121200212021211002110020212110021100200", "result": "2222102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020222102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210000222210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002022210202102021020210022021021021020210210022102102021020210210022021021021020210210022102102102102021021002210210210202102102100220210210210202102100220202020202100220210210202102102100221020210202021021002202102102102021021002202021020202102100221021021021020210210022021020202102102100220202020202100221020202020202100220202020202100221020210202021021002202102102021021021002210202102020210210022021021021020210210022020210202102102100220210210210202100000" }, { "label": "invalid-boolean", "source": "q x = x x\nprobe ignored = vendorB [(q q) 2 (q q)]", - "program": "2120212120212120021200212011212120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020212021212002121202121200212002120112002120102110020212120020021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201120021201021100202121200200212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102021020202102100220202021021021021002210202020202102100221021020202021021002202021020210210210022020210210202102100221020202102102102100220202020202100220202102021021021002202020210202102100220210202021021021002210202102020210210022102021020202102100220202020202100220210210202021021002210202021020210210022102021020202102100220202102102021021002202021020202102100221021020202102102100220210210210202100020212021212002121202121200212002120112002120102110020212120020021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201120021201021100202121200200212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102020202021021002202020202021002202021021020210210022102020210202102100221021020202102102100220202102021021021002202102102102021000212011201120112120112121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120102110020200202120212120021212021212002120021201120021201021100202121200200212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212011200212010211002021212002002121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202102020202100220202021021021021002202020202102102100221020210202021021002210210202020210210022020210202102102100221020210202021021002202021020202102100220202020202100221020202020210210022020202020210022020210210202102100221020202102021021002210210202021021021002202021020210210210022021021021020210002121200212002120112002120112002120112010212010211002020200212010211002120112011201121200212002120112011212121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212010211002020021212002120021201021100202002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201021201120102120102110020202020020202021202121200212120212120021200212011200212010211002021212002002121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120112002120102110020212120020021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202020202102100220202020202100220202102102021021002210202021020210210022102102020210210210022020210202102102100220210210210202100021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020202002020211002120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011212120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201021100202002121200212002120102110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120102120112010212010211002020202002121200212002120112002120112002120112011200212011201120021201120112010212011201021201021100202020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112002120112011201120112011201120112011201120021201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011200212011201120112011201120112011201120112011201021201120112011201120112011201120112011201021201120112011201120112011201120112010212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202021201120112011201120112011201120112010212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202020202120112011201120102120112011201021201120102120102110020202020202020202021201120102120102110020202020202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020202002020202020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202020200202020202020202020202110020202020202020202110020202021201120112010212011201021201021100202020202020212021212002121202121200212002120112002120102110020212120020021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201120021201021100202121200200212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102021020202102100220202021021021021002210202020202102100221021020202021021002202021020210210210022020210210202102100221020202102102102100220202020202100220202102021021021002202020210202102100220210202021021021002210202102020210210022102021020202102100220202020202100220210210202021021002210202021020210210022102021020202102100220202102102021021002202021020202102100221021020202102102100220210210210202100020211002021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100212011201120112011201120112011201121200212120212120021200212011200212010211002021212002021002121200211002002022102102020210210210022102102020202102100220202021020210210022102021020202102100221020210210202102100221020202020210210022021021020210202100221020210202021021002202102020210210210022102102020210210210022102020210202102100221021021021020210210022021021021020210210002021002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112011200212011201120112011201120112011201121202121200212002120112002120102110020212120020021212002110020020221020210202021021002202102102021021021002210202102020210210022021021021020210210022020210202102102100220202102021020210022102020210210210210022020202021021021002210202102020210210002120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201121202121200212002120112002120102110020212120020021212002110020020221021020202021021002210202102021021021002210210202021021021002202021020210210210022102102102102021021002210202102102021021002210202102020210210022021020202102102100021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112120212120021200212011200212010211002021212002021002121200211002002022102020202021021002210202102102021021002210210210210202102100221020210202102102100220210210210202102100220202102021021021002210210202020202100221020210202021021002202102102102021021002202021020210210210022102102020210210210002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202020020202020202020212120021200212010211002020020202020202021212002120021201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212010211002020102020202020202021202121200212120212120021200212011200212010211002021212002002121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120112002120102110020212120020021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102020202021021002210202102102021021002210210210210202102100221020210202102102100220210210210202102100220202102021021021002210210202020202100221020210202021021002202102102102021021002202021020210210210022102102020210210210022020202020210022102021021020210210022102021020210210210022102102020210210210022020210202102102100220202020202100220210202020210210022102021020202102100220202020202100221020202020210210022020202020210022102102020202102100221020202020210210022021021021020210210022102102102102021021002202102102102021021002210202021020210210022102102020202102100221020202020210210022020210210202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202021021021021002210202102102102100221020202021021002202020202102100220202020210210022020202021021002202020202102100220202020210210022020202021021002202102102102021000202021212002120021201120021201120021201120112002120112011200212011201120112022200202110021201020211002120112011201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201120021201120021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002020020200212011201120112120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100201020021100212010211002120112011201021201120102120102110020202120102110020202020201020202020202020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020212011201021201021100202020202020211002020212011201021201021100202120102110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110020211002120112011201021201120102120102110020202020202020202020210202021020202020210202102102102100202020202121200212002120102110020200202020212120021200212011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120102110020201020202020212021212002121202121200212002120112002120102110020212120020021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201120021201021100202121200200212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221021020202021021002210202102021021021002210210202021021021002202021020210210210022102102102102021021002210202102102021021002210202102020210210022021020202102102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002210210202021021021002210210202020210210022102020202021021002202021021020210210022102020202021021002202102020210210210022020202020210022020210202102102100221020210202021021002202020210210210210022020210202102102100220210210210202100020212011202121202121100211002021202121200212002120112121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202010202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021201120112021211002002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021201120102120102110020212010211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120102120112010212010211002020202020212120021200212010211002020020202020212120021200212011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120102110020201020202020202002020212011202121212002120021212002120021201120021201120021212002120021201120021201120021201120112021201120112021211002002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021201120102120102110020212010211002020211002121200212002120112002120112002120112011200212011201120021201120112011202220020211002120102021100212120021200212011200212011200212011201120021201120112002120112011201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212011200212011200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020200202002120112011201121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002010200211002120102110021201120112010212011201021201021100202021201021100202020202010202020202020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202120112010212010211002020202020202110020202120112010212010211002021201021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100202110021201120112010212011201021201021100202020202102102102102102102102102102102102102102102102102020202021002120112011201120221020021201020021212002120021201120021201120021201120112002120112011200212011201120112022200202110021201020211002120112011201121202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120112002120112002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100202002020021201120112011212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121200212002120112002120112002120112011200212011201120021201120112011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020102002110021201021100212011201120102120112010212010211002020212010211002020202020102020202020202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202021201120102120102110020202020202021100202021201120102120102110020212010211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002021100202020202020202020202020210210202102100212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120112002120112002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100202002020021201120112011212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121200212002120112002120112002120112011200212011201120021201120112011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020102002110021201021100212011201120102120112010212010211002020212010211002020202020102020202020202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202021201120102120102110020202020202021100202021201120102120102110020212010211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002021100212011201120102120112010212010211002020202021021021021021021021021021021021021021020210210020202121200212002120102110020200202121200212002120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201021100202010202020021202121202121100211002021202121200212002120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112011201021201120112011201021201120112010212011201021201021100202020202020211002020202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002020202020202121200212002120102110020200202020202020212120021200212011200212011200212011201021201021100202020020202020202120102110020202020202020020202020202020020202020211002020212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021100212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100202210210210210202102100220210202021021021002202021020202102100221020210202021021002202102020210210210022021021021020210022021020202102102100221020210202021021002202102102020210210022102021020210210210022021021021020210210022020210202021021002210202102020210210022020210202021021000212011201120112010212011201120102120112010212010211002020212011201021201021100202020212120021200212010211002020020212120021200212011200212011200212011201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212011201021201021100202020102121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112021211002002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021201120102120102110020212010211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120212011201120212110020021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212011201021201021100202120102110020202110021201120112011201120112011201120112120021212021212002120021201120021201021100202121200202100212120021100200202210210202021021021002210210202020210210022020202102021021002210202102020210210022102021021020210210022102020202021021002202102102021020210022102021020202102100220210202021021021002210210202021021021002210202021020210210022102102102102021021002202102102102021021000202100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201120021201120112011201120112011201120112120212120021200212011200212010211002021212002002121200211002002022102021020202102100220210210202102102100221020210202021021002202102102102021021002202021020210210210022020210202102021002210202021021021021002202020202102102100221020210202021021000212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112120212120021200212011200212010211002021212002002121200211002002022102102020202102100221020210202102102100221021020202102102100220202102021021021002210210210210202102100221020210210202102100221020210202021021002202102020210210210002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011212021212002120021201120021201021100202121200202100212120021100200202210202020202102100221020210210202102100221021021021020210210022102021020210210210022021021021020210210022020210202102102100221021020202020210022102021020202102100220210210210202102100220202102021021021002210210202021021021000212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020202002020202020202021212002120021201021100202002020202020202121200212002120112021212120021200202121100211002120102110020212021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120222002021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202020212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202021100212120212120021200212011200212011200212120021200212011200212011200212011201120021201120112002120112010212010211002020212010211002021201021100202121100211002110021201021100202010202020202020202120212120021212021212002120021201120021201021100202121200200212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212011200212010211002021212002002121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202020202102100221020210210202102100221021021021020210210022102021020210210210022021021021020210210022020210202102102100221021020202020210022102021020202102100220210210210202102100220202102021021021002210210202021021021002202020202021002210202102102021021002210202102021021021002210210202021021021002202021020210210210022020202020210022021020202021021002210202102020210210022020202020210022102020202021021002202020202021002210210202020210210022102020202021021002202102102102021021002210210210210202102100220210210210202102100221020202102021021002210210202020210210022102020202021021002202021021020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220202102102102100221020210210210210022102020202102100220202020210210022020202021021002202020202102100220202020210210022020202021021002202020202102100220210210210202100020202121200212002120112002120112002120112011200212011201120021201120112011202220020211002120102021100212011201120112021212021211002110020212021212002120021201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120112010212011201120112010212011201120102120112010212010211002020202020202110020202021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110020202020202021212002120021201021100202002020202020202121200212002120112002120112002120112010212010211002020200202020202021201021100202020202020200202020202020200202020202110020202120102110020211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120112002120112002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100202002020021201120112011212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121200212002120112002120112002120112011200212011201120021201120112011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020102002110021201021100212011201120102120112010212010211002020212010211002020202020102020202020202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202021201120102120102110020202020202021100202021201120102120102110020212010211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002021100212011201120102120112010212010211002020202020202020202021020202102020202021020210210210210020202020212120021200212010211002020020202021212002120021201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212010211002020102020202021202121200212120212120021200212011200212010211002021212002002121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120112002120102110020212120020021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102102020202102100221020210202102102100221021020202102102100220202102021021021002210210210210202102100221020210210202102100221020210202021021002202102020210210210022020202020210022102021021020210210022102021020210210210022102102020210210210022020210202102102100220202020202100220210202020210210022102021020202102100220202020202100221021020202102102100221021020202021021002210202020202102100220202102102021021002210202020202102100220210202021021021002202020202021002202021020210210210022102021020202102100220202021021021021002202021020210210210022021021021020210002021201120212120212110021100202120212120021200212011212120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112010212011201021201021100202020202021212002120021201021100202002020202021212002120021201120212121200212002021211002110021201021100202120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202220020211002020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202020211002121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021201120102120102110020202120102110020212010211002021211002110021100212010211002020102020202020200202021201120212121200212002121200212002120112002120112002121200212002120112002120112002120112011202120112011202121100200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120222002021100212010202110021212002120021201120021201120021201120112002120112011200212011201120112021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201120021201120021201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002121212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002020201021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002020020200212011201120112120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212002120021201120021201120021201120112002120112011200212011201120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100201020021100212010211002120112011201021201120102120102110020202120102110020202020201020202020202020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020212011201021201021100202020202020211002020212011201021201021100202120102110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110020211002120112011201021201120102120102110020202020210210210210210210210210210210210210210210210210202020202100212011201120112022102002120102002121200212002120112002120112002120112011200212011201120021201120112011202220020211002120102021100212011201120112120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212011200212011200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020200202002120112011201121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002010200211002120102110021201120112010212011201021201021100202021201021100202020202010202020202020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202120112010212010211002020202020202110020202120112010212010211002021201021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100202110020202020202020202020202021021020210210021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201021100212011201120102120112010212010211002120112011201120102120112011201021201120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212011200212011200212011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002020020202010211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020200202002120112011201121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212120021200212011200212011200212011201120021201120112002120112011201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212010211002120112011201021201120102120102110021201120112011201021201120112010212011201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120102110021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002010200211002120102110021201120112010212011201021201021100202021201021100202020202010202020202020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202120112010212010211002020202020202110020202120112010212010211002021201021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100202110021201120112010212011201021201021100202020202102102102102102102102102102102102102102021021002020212120021200212010211002020020212120021200212011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120102110020201020202002120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002110021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110020221021021021020210210022021020202102102100220202102020210210022102021020202102100220210202021021021002202102102102021002210210202020210210022021020202102102100221020210202021021002210202020202102100220202102021021021002210202102020210210022020210202021021000212011201120112011201021201120112011201021201120112010212011201021201021100202021201120112010212011201021201021100202020202121200212002120102110020200202121200212002120112002120112002120112011200212011201120021201120112011202121212002120020212110021100212010211002021202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112022200202110020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020202110021212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212011201021201021100202021201021100202120102110020212110021100211002120112011201021201120102120102110020202020020202020212021212002121202121200212002120112002120102110020212120020021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201120021201021100202121200200212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020220210202021021021002210202102020210210022021021020202102100221020210202102102100220210210210202102100220202102020210210022102021020202102100220202102020210210022020202020210022102021021020210210022102021020210210210022102102020210210210022020210202102102100220202020202100220210202020210210022102021020202102100220202020202100221020202020210210022020202020210022102102020202102100221020202020210210022021021021020210210022102102102102021021002202102102102021021002210202021020210210022102102020202102100221020202020210210022020210210202102100220202020202100220210202020202100221021021021020210210022102102102102021021002202021021020210210022102021020202102100221020202020210210022021021021020210210022021021021020210002110021212002120212110021100202121100211002121200202021002121200212021211002110020212110021100200", + "program": "2120212120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212021212002121202121200212002120102120021100202120102121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120102120021100202120102121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202102020202100220202021021021021002202020202102102100221020210202021021002210210202020210210022020210202102102100221020210202021021002202021020202102100220202020202100221020210202021021002202020210210210210022102020202021021002210210202020210210022020210202102102100220202102102021021002210202021021021021002202020202021002202021020210210210022020202102021021002202102020210210210022102021020202102100221020210202021021002202020202021002202102102020210210022102020210202102100221020210202021021002202021021020210210022020210202021021002210210202021021021002202102102102021000202120212120021212021212002120021201021200211002021201021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201021200211002021201021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202020202102100220202020202100220202102102021021002210202021020210210022102102020210210210022020210202102102100220210210210202100021201021201120112120112121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021212002120021201021100202002021202121200212120212120021200212010212002110020212010212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212010212002110020212010212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102020202021021002202020202021002202021021020210210022102020210202102100221021020202102102100220202102021021021002202102102102021000212010212120021200212010211002020021201021100212011201121200212002120102120112121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021212002120021201021100202002121200212002120102110020200212010212120021200212120021200212120021200212011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120102121200212002120102110020200202021202121200212120212120021200212010212002110020212010212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212010212002110020212010212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020210202020210022020202102102102100220202020210210210022102021020202102100221021020202021021002202021020210210210022102021020202102100220202102020210210022020202020210022102020202021021002202020202021002202021021020210210022102020210202102100221021020202102102100220202102021021021002202102102102021000212010212010212120021200212010211002020020211002120102110021201120112010212120021200212011200212011200212011201120021201120112002120112011201021212002120021201120021201120021201120102120112002120112002120112011212120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212120021200212010211002020021212002120021201021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011212002120021201021200212002121200212002120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021201021212002120021201021100202002120102121200212002120102110020200212011201120112010212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201120112010212120021200212011200212011200212011201120021201120112002120112011201021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202120102110020202120102120102120102121200212002120102110020200202021201021201021201021201021212002120021201021100202002020202020211002020202021100202021201021100202020202120212120021212021212002120021201021200211002021201021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201021200211002021201021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102021020202021002202020210210210210022020202021021021002210202102020210210022102102020202102100220202102021021021002210202102020210210022020210202021021002202020202021002210202102020210210022020202102102102100221020202020210210022102102020202102100220202102021021021002202021021020210210022102020210210210210022020202020210022020210202102102100220202021020210210022021020202102102100221020210202021021002210202102020210210022020202020210022021021020202102100221020202102021021002210202102020210210022020210210202102100220202102020210210022102102020210210210022021021021020210002021100202121200212002120112002120112002121200212002120102120021200212011200212011200212120021200212011200212011200212011201120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002120112010212120021200212010212002120021201121202121200212002120112002120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120102120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100212011201120102121200212002120112002120112002120112011200212011201120021201120112010212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112010212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202120112011202121100200212120021200212011200212011200212120021200212010212002120021201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021201021100202120102110020202110021201120112010212011201120112120021212021212002120021201021200211002021201210021212002110020020221021020202102102100221021020202021021002202020210202102100221020210202021021002210202102102021021002210202020202102100220210210202102021002210202102020210210022021020202102102100221021020202102102100221020202102021021002210210210210202102100220210210210202102100020210021212002120021201021200212002120102120021200212011200212011212021212002120021201021200211002021201021212002110020020221020210202021021002202102102021021021002210202102020210210022021021021020210210022020210202102102100220202102021020210022102020210210210210022020202021021021002210202102020210210002120102110020212120021200212010212002120021201120021201121202121200212002120102120021100202120102121200211002002022102102020202102100221020210202102102100221021020202102102100220202102021021021002210210210210202102100221020210210202102100221020210202021021002202102020210210210002120102110020212120021200212011200212011212021212002120021201021200211002021201210021212002110020020221020202020210210022102021021020210210022102102102102021021002210202102021021021002202102102102021021002202021020210210210022102102020202021002210202102020210210022021021021020210210022020210202102102100221021020202102102100021201021100202002020202121200212002120102110020200202020212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020102020202021202121200212120212120021200212010212002110020212010212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212010212002110020212010212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221020202020210210022102021021020210210022102102102102021021002210202102021021021002202102102102021021002202021020210210210022102102020202021002210202102020210210022021021021020210210022020210202102102100221021020202102102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002210202020202102100220202020202100221021020202021021002210202020202102100220210210210202102100221021021021020210210022021021021020210210022102020210202102100221021020202021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022020210210210210022102021021021021002210202020210210022020202021021002202020202102100220202020210210022020202021021002202020202102100220202020210210022021021021020210002020212120021200212011202220020211002020211002120112021212021211002110020212021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020021201021212002120021201021200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120112002120112002120112010212120021200212011200212011200212120021200212011200212011200212011201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002120112010212120021200212010212002120021201021100202120102110021201120102120112010212120021200212010212002120021201021100202120102110020202110020212010211002120112010212120021200212011200212011200212120021200212011200212011200212011201021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021201120102121200212002120102120021200212010211002021201021100202021212002120021201021100202002020212010212120021200212010211002020020202120102110020202020020202020200202021100202120102110020211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002121200212002120112021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201021200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100202002121200212002120102120021200212011200212011200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020200202002120112120021200212010212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201021200212002120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100201020021100212010211002120102110020212010211002020202010202020202020021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202120102120102110020212010211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002021100212010211002020202020202020210202021020202020210202102102102100202020212120021200212010211002020020202021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202010202020202120212120021212021212002120021201021200211002021201021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201021200211002021201021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022102102020202102100221020210202102102100221021020202102102100220202102021021021002210210210210202102100221020210210202102100221020210202021021002202102020210210210022020202020210022102021021020210210022102021020210210210022102102020210210210022020210202102102100220202020202100220210202020210210022102021020202102100220202020202100221021020202102102100221021020202021021002210202020202102100220202102102021021002210202020202102100220210202021021021002202020202021002202021020210210210022102021020202102100220202021021021021002202021020210210210022021021021020210002021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021201120102120112002120112002121200212002120112002120112002120112011202120112011202121100200212120021200212011200212011200212120021200212010212002120021201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021201021100202120102110020202110021201120102121200212002120102120021200212010211002021201021100202021212002120021201021100202002020212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020102020202002021201120212121200212002121200212002120102120021200212120021200212011202120112011202121100200212120021200212011200212011200212120021200212010212002120021201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021201021100202120102110020202110021201021212002120021201120222002021100202021100212120021200212011202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120102120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110020200212120021200212010212002120021201120021201120021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002020020200212011212002120021201021200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120102120021200212011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020102002110021201021100212010211002021201021100202020201020202020202002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212010212010211002021201021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100202110021201021100202021021021021021021021021021021021021021021021021020202020210021201120221020020200212120021200212011202220020211002020211002120112120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100202002020021201121200212002120102120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212010212002120021201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002010200211002120102110021201021100202120102110020202020102020202020200212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020211002020202020202020202020202102102021021002120102110021212002120021201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100202002020021201121200212002120102120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212010212002120021201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002010200211002120102110021201021100202120102110020202020102020202020200212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020211002120102110020202102102102102102102102102102102102102102021021002021212002120021201021100202002021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202010202020021202121202121100211002021202121200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002120102121200212002120102120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212011200212011200212011201021212002120021201120021201120021212002120021201120021201120021201120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212011201021212002120021201021200212002120102110020212010211002120112010212011201021212002120021201021200212002120102110020212010211002020211002021201021100212011201021212002120021201120021201120021212002120021201120021201120021201120102120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120112010212120021200212010212002120021201021100202120102110020202121200212002120102110020200202021201021212002120021201021100202002020212010211002020202002020202020020202110020212010211002021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021100212010211002021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100202210210210210202102100220210202021021021002202021020202102100221020210202021021002202102020210210210022021021021020210022021020202102102100221020210202021021002202102102020210210022102021020210210210022021021021020210210022020210202021021002210202102020210210022020210202021021000212010211002021201021100202021212002120021201021100202002021201021212002120021201120212120112121100211002120102110020212021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002020200212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021212002120021201021100202110020202020021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201120112011202220020211002020211002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212120212120021200212010212002120021212002120021201021200212002110020212010211002021201021100202121100211002110021201021100202010212120021200212011200212011200212011201120021201120112002120112011201021212002120021201021200212002120112002120112002121200212002120112002120112002120112011202120112011202121100200212120021200212011200212011200212120021200212010212002120021201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021201021100202120102110020202110021201120102121200212002120102120021200212011212021212002120021201120021201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212011201120212110020021212002120021201120021201120021212002120021201021200212002120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002120102110020212010211002020211002120112011201021212002120021201120021201120021201120112002120112011200212011201120102121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120102120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100212011201120102120112011201121200212120212120021200212010212002110020212012100212120021100200202210210202021021021002210210202020210210022020202102021021002210202102020210210022102021021020210210022102020202021021002202102102021020210022102021020202102100220210202021021021002210210202021021021002210202021020210210022102102102102021021002202102102102021021000202100212120021200212010212002120021201021200212002120112002120112120212120021200212010212002110020212010212120021100200202210202102020210210022021021020210210210022102021020202102100220210210210202102100220202102021021021002202021020210202100221020202102102102100220202020210210210022102021020202102100021201021100202121200212002120102120021200212011200212011212021212002120021201021200211002021201021212002110020020221021020202021021002210202102021021021002210210202021021021002202021020210210210022102102102102021021002210202102102021021002210202102020210210022021020202102102100021201021100202121200212002120112002120112120212120021200212010212002110020212012100212120021100200202210202020202102100221020210210202102100221021021021020210210022102021020210210210022021021021020210210022020210202102102100221021020202020210022102021020202102100220210210210202102100220202102021021021002210210202021021021000212010211002020020202021212002120021201021100202002020202121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020201020202020212021212002121202121200212002120102120021100202120102121200211002002022102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020221020210202021021002202102020210210210022021020202102102100221021021021020210210022021020202102102100021212002121202121200212002120102120021100202120102121200211002002022102021021020210210022102021020202102100221021020202102102100221021020202102102100221020202020210210022102102102020210210022102021020202102100021100200202210202020202102100221020210210202102100221021021021020210210022102021020210210210022021021021020210210022020210202102102100221021020202020210022102021020202102100220210210210202102100220202102021021021002210210202021021021002202020202021002210202102102021021002210202102021021021002210210202021021021002202021020210210210022020202020210022021020202021021002210202102020210210022020202020210022102020202021021002202020202021002210210202020210210022102020202021021002202102102102021021002210210210210202102100220210210210202102100221020202102021021002210210202020210210022102020202021021002202021021020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220202102102102100221020210210210210022102020202102100220202020210210022020202021021002202020202102100220202020210210022020202021021002202020202102100220210210210202100020202121200212002120112022200202110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021212002120021201120212011202121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020102110021201120212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110021212002120021201120212120212110021100202120212120021200212010212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002020021212002120021201021200212002120112002120112002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100202002020021201121200212002120102120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212010212002120021201120212011212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002020021100212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002010200211002120102110021201021100202120102110020202020102020202020200212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021201021201021100202120102110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110020211002120102110020202020202020202102020210202020202102021021021021002020202121200212002120102110020200202020212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020102020202021202121200212120212120021200212010212002110020212010212120021100200202210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210002121200212120212120021200212010212002110020212010212120021100200202210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002110020020221021020202021021002210202102021021021002210210202021021021002202021020210210210022102102102102021021002210202102102021021002210202102020210210022021020202102102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002210210202021021021002210210202020210210022102020202021021002202021021020210210022102020202021021002202102020210210210022020202020210022020210202102102100221020210202021021002202020210210210210022020210202102102100220210210210202100020212011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002120102121200212002120102120021200212120021200212011200212011200212120021200212011200212011200212011201021201120021201120021212002120021201120021201120021201120112021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020201020202020020212011202121212002120021212002120021201021200212002121200212002120112021201120112021211002002121200212002120112002120112002121200212002120102120021200212011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212010211002021201021100202021100212010212120021200212011202220020211002020211002121200212002120112021201120212121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002002010211002120112021212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002020020202010211002121200212002120112021212021211002110020212021212002120021201021200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100202002121200212002120102120021200212011200212011200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020200202002120112120021200212010212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201021200212002120112021201121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200202002110021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100201020021100212010211002120102110020212010211002020202010202020202020021201021201120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202120102120102110020212010211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002021100212010211002020210210210210210210210210210210210210210210210210202020202100212011202210200202002121200212002120112022200202110020202110021201121202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120102120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110020200212120021200212010212002120021201120021201120021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002020020200212011212002120021201021200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120102120021200212011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020102002110021201021100212010211002021201021100202020201020202020202002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212010212010211002021201021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100202110020202020202020202020202021021020210210021201021100212120021200212011202120112021212120212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002120102120102120102110021201021201021201021201021100202021100200201021100212011202121212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002020201021100212120021200212011202121202121100211002021202121200212002120102120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200202020102110020200212120021200212010212002120021201120021201120021201120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002020020200212011212002120021201021200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120102120021200212011202120112121202121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110021201021201021201021100212010212010212010212010211002020211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020020200211002121212021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100212010212010212010211002120102120102120102120102110020202110020102002110021201021100212010211002021201021100202020201020202020202002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212010212010211002021201021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100202110021201021100202021021021021021021021021021021021021021020210210020212120021200212010211002020020212120021200212011202121201121211002110021201021100202120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020020202002121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212120021200212010211002021100202020200212011201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011201120112022200202110020202110021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100212010212011201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002121202121200212002120102120021200212120021200212010212002120021100202120102110020212010211002021211002110021100212010211002020102020200212021212021211002110020212021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020021201021212002120021201021200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120112002120112002120112010212120021200212011200212011200212120021200212011200212011200212011201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002120112010212120021200212010212002120021201021100202120102110021201120102120112010212120021200212010212002120021201021100202120102110020202110020212010211002120112010212120021200212011200212011200212120021200212011200212011200212011201021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021201120102121200212002120102120021200212010211002021201021100202021212002120021201021100202002020212010212120021200212010211002020020202120102110020202020020202020200202021100202120102110020211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100211002120102110020211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002022102102102102021021002202102020210210210022020210202021021002210202102020210210022021020202102102100220210210210202100221021020202021021002202102020210210210022102021020202102100221020202020210210022020210202102102100221020210202021021002202021020202102100021201021100202120102110020202121200212002120102110020200202120102121200212002120112021212011212110021100212010211002021202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200202020021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002121200212002120102110020211002020202002120112011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200202002121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112011201120222002021100202021100212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002120102120112010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021212021212002120021201021200212002121200212002120102120021200211002021201021100202120102110020212110021100211002120102110020200202020202120212120021212021212002120021201021200211002021201021212002110020020221021020202102102100220202102021021021002210202020202102100220202102021021021002210202102021021021002210210202021021021000202210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000212120021212021212002120021201021200211002021201021212002110020020221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000211002002022021020202102102100221020210202021021002202102102020210210022102021020210210210022021021021020210210022020210202021021002210202102020210210022020210202021021002202020202021002210202102102021021002210202102021021021002210210202021021021002202021020210210210022020202020210022021020202021021002210202102020210210022020202020210022102020202021021002202020202021002210210202020210210022102020202021021002202102102102021021002210210210210202102100220210210210202102100221020202102021021002210210202020210210022102020202021021002202021021020210210022020202020210022021020202020210022102102102102021021002210210210210202102100220202102102021021002210202102020210210022102020202021021002202102102102021021002202102102102021000211002121200212021211002110020212110021100212012021002121200212021211002110020212110021100200", "result": "2222102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020222102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210000222210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002022202102020210210210022102021020202102100220210210202021021002210202102021021021002202102102102021021002202021020202102100221020210202021021002202021020202102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002210202020202102100220202020202100221021020202021021002210202020202102100220210210210202102100221021021021020210210022021021021020210210022102020210202102100221021020202021021002210202020202102100220202102102021021002202020202021002202102020202021002210210210210202102100221021021021020210210022020210210202102100221020210202021021002210202020202102100220210210210202102100220210210210202100000" } ], "source": "-- Event adapter: two producers, one consumer-facing record schema.\n-- vendorA accepts [eventName customer totalCents]. eventName is purchase/refund.\n-- vendorB accepts [customer refunded totalCents]. refunded is a Boolean.\n-- Both return schemaVersion, eventType, customer and amountCents.\n-- Try the two exports: their presets describe the same order.created event.\n-- A producer can publish the adapter hash alongside its event schema.\n-- Preparation closes practical-support.tri and selected base helpers into code.\n\nnormalized event customer cents = case text? customer of\n ^true = (case and? (natural? cents) (lessEq cents 1000000) of\n ^true = [(numberField \"schemaVersion\" 1) (stringField \"eventType\" event)\n (stringField \"customer\" customer) (numberField \"amountCents\" cents)]\n _ = failure \"amountCents must be a canonical natural <=1000000.\")\n _ = failure \"customer must be scalar text.\"\n\nfromA \"purchase\" customer cents = normalized \"order.created\" customer cents\nfromA \"refund\" customer cents = normalized \"order.refunded\" customer cents\nfromA _ _ _ = failure \"Unknown vendor A event.\"\n\nfromB customer ^true cents = normalized \"order.refunded\" customer cents\nfromB customer ^false cents = normalized \"order.created\" customer cents\nfromB _ _ _ = failure \"refunded must be a canonical Boolean.\"\n\n-- Preserve list-shape diagnostics without inspecting any field before dispatch.\nunpack handler (t _) = failure \"Expected a list.\"\nunpack handler [_ | (t _)] = failure \"Expected a list.\"\nunpack handler [_ | [_ | (t _)]] = failure \"Expected a list.\"\nunpack handler [a b c] = handler a b c\nunpack _ _ = failure \"Expected exactly three fields.\"\n\nvendorA values = unpack fromA values\nvendorB values = unpack fromB values\n", "sourceSha256": "c0a6deee9945ae50a71c68461030af7cdbce30495bb6d154b98e393bb70280a1", - "hash": "ad05c3311ddcd6d533f438f379f0177347570e6c3f563939ecb9e5c88a7d636b", + "hash": "0844067dd63e9e6fc252a2ab2343b1937bb31abd8e44ad6683895f81d0c2499c", "mode": "pure", "haskellCases": [ { @@ -1168,7 +1168,7 @@ "demandCases": [], "source": "-- Registration validator: name, email, age, termsAccepted are separate arguments.\n-- Returns one field-specific message per input, plus an accepted Boolean.\n-- Name must be nonempty scalar text. Age must be a natural from 18 to 120.\n-- Email uses a deliberately small rule: nonempty text containing @ and a dot.\n-- Terms must be the canonical true Boolean. This is a teaching policy, not SMTP validation.\n-- Browser and server can pin this same executable instead of duplicating rules.\n-- Preparation closes practical-support.tri and selected base helpers into code.\n\nnameMessage name = case text? name of\n ^true = (case name of\n [] = \"Name is required.\"\n _ = \"\")\n _ = \"Name must be scalar text.\"\n\nemailMessage email = case text? email of\n ^true = (case and? (contains? \"@\" email) (contains? \".\" email) of\n ^true = \"\"\n _ = \"Email must contain @ and a dot.\")\n _ = \"Email must be scalar text.\"\n\nageMessage age = case natural? age of\n ^true = (case and? (lessEq 18 age) (lessEq age 120) of\n ^true = \"\"\n _ = \"Age must be from 18 to 120.\")\n _ = \"Age must be a canonical natural.\"\n\ntermsMessage ^true = \"\"\ntermsMessage _ = \"Accept the terms.\"\n\nreport name email age terms = [\n (boolField \"accepted\" (and? (equal? name \"\") (and? (equal? email \"\") (and? (equal? age \"\") (equal? terms \"\")))))\n (stringField \"nameError\" name) (stringField \"emailError\" email)\n (stringField \"ageError\" age) (stringField \"termsError\" terms)]\n\nmain name email age terms = report (nameMessage name) (emailMessage email) (ageMessage age) (termsMessage terms)\n", "sourceSha256": "bc01d7b3af0dabb3c467aa06e48d7c18118276bc087dda0ea867f8a1a660ef05", - "hash": "1bdd76b8f6acfc62f08d7badde27c23d3a4e9a1042fd18bb235903b48cf71ec6", + "hash": "a8ea6cb0c1d175206448456e907790f5204f43c48581f588ddb4894d4c40b996", "mode": "pure", "haskellCases": [ { @@ -1302,7 +1302,7 @@ "demandCases": [], "source": "-- Archived profile v0: [name email]. v1: adds schemaVersion and displayName.\n-- v2: also supplies marketingOptIn=false; existing data is preserved.\n-- Select v1/v2 with the same input to compare the two target schemas.\n-- A migration receipt can record the input identity, executable hash/export,\n-- output identity and wire schema. Running this demo stays entirely local.\n-- Preparation closes practical-support.tri and selected base helpers into code.\n\nmigrate version name email = case and? (text? name) (text? email) of\n ^true = (case version of\n 1 = [(numberField \"schemaVersion\" 1) (stringField \"displayName\" name) (stringField \"email\" email)]\n _ = [(numberField \"schemaVersion\" 2) (stringField \"displayName\" name) (stringField \"email\" email)\n (boolField \"marketingOptIn\" false)])\n _ = failure \"Name and email must be scalar text.\"\n\nprofile _ (t _) = failure \"Expected a list.\"\nprofile _ [_ | (t _)] = failure \"Expected a list.\"\nprofile version [name email] = migrate version name email\nprofile _ _ = failure \"Expected [name email].\"\n\nv1 values = profile 1 values\nv2 values = profile 2 values\n", "sourceSha256": "3f8b8125203b08e6e57b83f509b445e08c882da6fe507efe338bfde0649f3f8a", - "hash": "68ffd0cf2f046ac6d9f1867ba8c1eca5563a132b836db1be1ea0e3c39f568a3e", + "hash": "41f27e53f2cde13130dc5a9c3e74de49d16f94f7dc565ca4357c55ce4ba5280d", "mode": "pure", "haskellCases": [ { diff --git a/ext/demo-site/environments.json b/ext/demo-site/environments.json @@ -1,10 +1,10 @@ { "schema": 1, - "compiler": "520a2bb435a56706164fb34c7ea06e12e143050ffeb1da2632747e427ce61faf", + "compiler": "e70583bc724ae495a33ead7e10614e2c6a9664bf4855c7e6042871cbd5d88a09", "profiles": { "empty": null, "practical": { - "hash": "79942a06288a99c9a49167fbfe732a08d9c13e6191c8c04d76ddc3835f07dff0", + "hash": "81e16ee575d66ef42f735cd9425f4005e5f04b733f1c8b6646a1814ba8e5d8fa", "names": [ "isNat?", "lte_?", diff --git a/ext/demo-site/lexer-demo.json b/ext/demo-site/lexer-demo.json @@ -1,8 +1,8 @@ { "id": "lexer", - "hash": "50c088ee7b87f229ef37c375e86d32d594610b5ef7cc61ea129351da0ce4b208", + "hash": "e756a481b3056a2e76f50316ccf77bfab8b15727b7bec899580c2eb919e668b2", "mode": "pure", - "compilerSha256": "5d36d069562ca9b208cfd0aa8df9f0d3b5c39f8b13e070fb892e21b38e32ffb4", + "compilerSha256": "0e147f90159752bb96128453a4c7dacb497005ad96d5b38b27a369c87ce06079", "sourceSha256": "5478169b100e087b8f8862418a2cd5d0e593edcc299a122b762842483f4525e0", "haskellCases": [ { diff --git a/ext/demo-site/packages.json b/ext/demo-site/packages.json @@ -360,6 +360,190 @@ "manifest": "ebc3b77fbbdd82068bb3fb407a597bb3fe54144ca31f7dc32c38720783c7e326", "title": "Located scans: matched prefix, remainder and character positions", "demo": "lexer" + }, + { + "name": "tricu-compiler", + "version": "0.1.2", + "hash": "e70583bc724ae495a33ead7e10614e2c6a9664bf4855c7e6042871cbd5d88a09", + "manifest": "01328f4f795566b61d197e7b9f2017f6d3472c68c119e49b8a4e486afd2741ac", + "title": "Compiler library (stable browser source-unit API; native helpers)" + }, + { + "name": "tricu-source-builder", + "version": "0.1.2", + "hash": "0e147f90159752bb96128453a4c7dacb497005ad96d5b38b27a369c87ce06079", + "manifest": "6940a638fd5619958dcd53e37d7fac7b6926acc5f5dc8833d33cacafa8564ff9", + "title": "Stable native application compiler (modules, imports and publication)" + }, + { + "name": "arboricx-server", + "version": "0.1.2", + "hash": "390ffadd746dfa78a9b846a41282c25ff947a7ceddf1535093c40b4594850624", + "manifest": "9127564f5fe67be7fd6cdb2b65c3b7c61741a4e2879c1c2fe11107d2da7f48fb", + "title": "Arboricx registry server (native sockets and filesystem)" + }, + { + "name": "tricu-http", + "version": "0.1.2", + "hash": "0850a25a5c18dad2560a8aa9c834fc3215f117dcde55e91982a73ee54491b532", + "manifest": "e6555fc1105a64209a969cc9202a3f6c19b211c49027718dcb735cd1965894c9", + "title": "HTTP parsing, responses and native socket handlers" + }, + { + "name": "tricu-intensional-contracts", + "version": "0.1.2", + "hash": "dd39639f1d0a1a14f7856b8d0db682adf36d1e7501ea1889bd185ea500989380", + "manifest": "7467e74f0c5b7dfad8d6a14d34171b2b0bcd7750423894e2ca920e0535fde7d1", + "title": "Intensional contracts: tree shapes and numeric structure" + }, + { + "name": "tricu-graphs", + "version": "0.1.2", + "hash": "2cc226f82e9c3526fb086ffe0977a909fabe753fc82de1e18d1f507625c681fe", + "manifest": "7b798a3afae6dce07b718bed855c7209ec3b898bb70b379dece935c4033cf9b6", + "title": "Dependency ordering and cycle witnesses (validated small graphs)" + }, + { + "name": "tricu-parser", + "version": "0.1.2", + "hash": "e23c7eab463765182fcfe4aafacca71d223f30664374019b41d29539d0f3883b", + "manifest": "14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d", + "title": "Parser combinators: diagnostics, consumption and commitment" + }, + { + "name": "tricu-math", + "version": "0.1.2", + "hash": "3cda081418977c005f8375a0aa56a9daadddc83d1413a4f750dbee1e155f2206", + "manifest": "fde960cbc603e76acf91e38d9f429e990fc16ccef5e8efa43789f16129b6f77a", + "title": "Binary arithmetic and ASCII classifiers (canonical naturals only)" + }, + { + "name": "tricu-lexer", + "version": "0.1.2", + "hash": "5305ab2e168279b82d09ab061c31a386a27e3f8ce51ad50b4241850522bd3a2f", + "manifest": "816df1a32853750a1254112aff8ae8c55ca86bf70e809d226969ab1d43a6688b", + "title": "Located character scans and token positions" + }, + { + "name": "tricu-binary", + "version": "0.1.2", + "hash": "fe3b02f68025b90d0ce782885c8f72582642a985694eb4bcd702c2e006846a86", + "manifest": "7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc", + "title": "Checked byte readers, prefix parsing and UTF-8 validation" + }, + { + "name": "tricu-patterns", + "version": "0.1.2", + "hash": "fb81fe47421564ac80fedc90be6003906e017978385f749d2da95297e58587c2", + "manifest": "703db8cd6c5679861257d1cc38c17be200241ade8db3812e8c387e9274aaa56e", + "title": "Ordered predicate/action dispatch and thunked conditionals" + }, + { + "name": "tricu-list-traversal", + "version": "0.1.2", + "hash": "60afc41f04fa65130326eeed4ca9e128bee5e90c7041f9641bbf9cfe87c142cd", + "manifest": "4c79b7ad124027147b8fddd98c2b66cfd776c36d915c95dfb1fbf9b31a51fb88", + "title": "Early-stopping list folds with retained input suffixes" + }, + { + "name": "tricu-formatter", + "version": "0.1.2", + "hash": "0f9fc50a4b5a5270c274113418bdd9099f124ebd57d16e0f58a054081738c408", + "manifest": "19871fe326a2e48aa38e728988b185a8ba9cb585868b74eaa758860526d0c53d", + "title": "Conservative tricu equation alignment (not an AST printer)" + }, + { + "name": "parser-demo", + "version": "0.1.2", + "hash": "355e41506f39e05da8c8a72a68aa810a486e062480322bac11af67e86980520e", + "manifest": "0c34bfdf800f8bd1b742e375a8f7c555c88d0c827268f684259433e834d94fed", + "title": "Parser combinators: complete input, prefixes and committed errors", + "demo": "parser" + }, + { + "name": "lexer-demo", + "version": "0.1.2", + "hash": "e756a481b3056a2e76f50316ccf77bfab8b15727b7bec899580c2eb919e668b2", + "manifest": "ed99e054e9c862668e165f458d3afcdc56279f766eea7a3886d440aea7252b63", + "title": "Located scans: matched prefix, remainder and character positions", + "demo": "lexer" + }, + { + "name": "greet", + "version": "0.1.2", + "hash": "0811457d501113ee11194f90e279ebb4ef9d548c70cb48d146be03eb9af7505f", + "manifest": "c2abf7b96cbc820eeb5ae5d5afcf8ec270f06b3a4eebfc00b6ff6c526f3b099b", + "title": "A conversation", + "demo": "greet" + }, + { + "name": "microscope", + "version": "0.1.2", + "hash": "a1919c931e13a4b29536e09b3230a7cda3e972934cdfb401aa50ceffbdba70ef", + "manifest": "7107f14eb360c5daf21833c5de9d6c1211d1da6e6b87da742cbdfcd4fe6ec98c", + "title": "Tree microscope", + "demo": "microscope" + }, + { + "name": "rgb", + "version": "0.1.2", + "hash": "a90ff53f2e05424ad536d7b819fb1710dab83127f0516d66384bd9bbe8ddbda2", + "manifest": "cd48224c20bb2315006cba76963c101dc2b6fc86c5b9c4c77dcafdfc2a5c9eec", + "title": "RGB validator", + "demo": "rgb" + }, + { + "name": "shipping", + "version": "0.1.2", + "hash": "efbdff446802ddcfe353461dce3ea75b60187fce601f0f47cfe7320511aea02e", + "manifest": "0949970382a37bf05dae4cbb61d223f360f7ee7aa309e9ba512f9a3b1400d758", + "title": "Shipping policies", + "demo": "shipping" + }, + { + "name": "events", + "version": "0.1.2", + "hash": "0844067dd63e9e6fc252a2ab2343b1937bb31abd8e44ad6683895f81d0c2499c", + "manifest": "06801d8b606ea5f12cb7f232f5e9c974e6042818c9e75acec382a91f8ed039c4", + "title": "Event adapters", + "demo": "events" + }, + { + "name": "registration", + "version": "0.1.2", + "hash": "a8ea6cb0c1d175206448456e907790f5204f43c48581f588ddb4894d4c40b996", + "manifest": "d107d23d5ce0fb99fd09441882d55f0dea9f90e0ea2d7a44c715cceba07ae871", + "title": "Registration validator", + "demo": "registration" + }, + { + "name": "migration", + "version": "0.1.2", + "hash": "41f27e53f2cde13130dc5a9c3e74de49d16f94f7dc565ca4357c55ce4ba5280d", + "manifest": "31468840fb7a616d0b6e45823414843dfeaacd862c71121448407b70848253bd", + "title": "Profile migrations", + "demo": "migration" + }, + { + "name": "tricu-base", + "version": "0.1.2", + "hash": "f9f0ab0e44f6ae39479d74c6c66a2bdaba3f40bd26781c3ec95300c2ee3c07f3", + "manifest": "fa9d4df0f82cac2754fdd3e92009cb48064856ff4cc5b18f092309aef7ff5ed4", + "title": "Foundation: lists, Results and decimal formatting" + }, + { + "name": "tricu-file-io", + "version": "0.1.2", + "hash": "401961d889131c735bf48b415f53d3b85dfab0136496299f60cf1dcb0b264f14", + "manifest": "6a22866c2cff143599cb854b2cd3bb3c8948e40835425ed62d942d88bed5c5aa", + "title": "File IO and hashing actions" + }, + { + "name": "arboricx-inspection", + "version": "0.1.2", + "hash": "f571888c5aa3f7a91e9d5d6c45c674851ea8e3598514ad8d535fd3e9056d0314", + "manifest": "fe9b420e1e776fa1dda7b77857e322c0509ed308bb18441b76a3b03023f93468", + "title": "Arboricx inspection: validate without execution" } ] } diff --git a/ext/demo-site/parser-demo.json b/ext/demo-site/parser-demo.json @@ -1,8 +1,8 @@ { "id": "parser", - "hash": "c7560f717712244810ed3b354912fe8791c2bab5c1df1520813426be01910c2f", + "hash": "355e41506f39e05da8c8a72a68aa810a486e062480322bac11af67e86980520e", "mode": "pure", - "compilerSha256": "5d36d069562ca9b208cfd0aa8df9f0d3b5c39f8b13e070fb892e21b38e32ffb4", + "compilerSha256": "0e147f90159752bb96128453a4c7dacb497005ad96d5b38b27a369c87ce06079", "sourceSha256": "3405e18774db8de759b7793880e1568c156d68e5fe4a388e09b95ff301d896f5", "haskellCases": [ { diff --git a/ext/demo-site/prepare-showcase.py b/ext/demo-site/prepare-showcase.py @@ -99,7 +99,18 @@ def stage(site, artifacts, releases, demo, goldens): if not previous: index['releases'].append(release) for demo in demos: previous = next((e for e in catalogue if e['id'] == demo['id']), None) - if previous and previous != demo: raise ValueError('Existing demo differs; release explicitly instead of overwriting') + if previous and previous != demo: + # Catalogue selection is mutable; published name/version pins are not. + # Only advance an existing native demo through a new accepted release + # of the same package, retaining its previously indexed release. + old = [r for r in index['releases'] if r.get('demo') == demo['id'] + and r['hash'] == previous['hash'] and (r['name'], r['version']) in keys] + fresh = [r for r in releases if r.get('demo') == demo['id'] + and r['hash'] == demo['hash'] and (r['name'], r['version']) not in keys + and any(r['name'] == prior['name'] for prior in old)] + if previous.get('preparation') != 'native' or demo.get('preparation') != 'native' or not fresh: + raise ValueError('Existing demo differs; release explicitly instead of overwriting') + catalogue[catalogue.index(previous)] = demo if not previous: catalogue.append(demo) for pin, path in artifacts.items(): data = path.read_bytes() diff --git a/ext/demo-site/test/browser.mjs b/ext/demo-site/test/browser.mjs @@ -181,8 +181,8 @@ try { assert.equal(await evaluate("document.getElementById('program-release').hidden"),false,'single-release examples keep an active version toolbar'); await evaluate("document.getElementById('program-picker').value='demo:rgb';document.getElementById('program-picker').dispatchEvent(new Event('change'))");await wait(status('Ready')); assert.equal(await evaluate("document.getElementById('program-release').hidden"),false); - assert.deepEqual(await evaluate("[...document.getElementById('package-version').options].map(o=>o.value)"),['0.1.1','0.1.0']); - assert.equal(await evaluate("document.getElementById('package-version').value"),'0.1.1'); + assert.deepEqual(await evaluate("[...document.getElementById('package-version').options].map(o=>o.value)"),['0.1.2','0.1.1','0.1.0']); + assert.equal(await evaluate("document.getElementById('package-version').value"),'0.1.2'); await evaluate("document.getElementById('package-version').value='0.1.0';document.getElementById('package-version').dispatchEvent(new Event('change'))"); assert.equal(await evaluate("document.getElementById('run').disabled"),true); assert.equal(await evaluate("document.getElementById('export-tree').disabled"),true); @@ -195,14 +195,14 @@ try { assert.match(await evaluate("document.getElementById('release-info').textContent"),/rgb@0.1.0/); await click('tab-playground'); assert.equal(await evaluate("document.getElementById('source-editor').hidden"),true,'older release does not borrow current editable source'); - await evaluate("document.getElementById('package-version').value='0.1.1';document.getElementById('package-version').dispatchEvent(new Event('change'))"); + await evaluate("document.getElementById('package-version').value='0.1.2';document.getElementById('package-version').dispatchEvent(new Event('change'))"); await click('load-release');await wait(status('Ready')); assert.equal(await evaluate("document.getElementById('source-editor').hidden"),false,'current release retains curated source and presets'); const beforeChoice=requests.filter(p=>p.startsWith('/_arboricx/bundle/hash/')).length; await evaluate("document.getElementById('program-picker').value='package:tricu-base';document.getElementById('program-picker').dispatchEvent(new Event('change'))"); assert.equal(await evaluate("document.getElementById('program-release').hidden"),false); assert.equal(await evaluate("document.getElementById('program-hash').hidden"),true); - assert.equal(await evaluate("document.getElementById('package-version').value"),'0.1.1','published packages default to newest release'); + assert.equal(await evaluate("document.getElementById('package-version').value"),'0.1.2','published packages default to newest release'); assert.equal(await evaluate("document.getElementById('run').disabled"),true); assert.match(await evaluate("document.getElementById('package-info').textContent"),/No bundle loaded/); for(const name of [...new Set(packageIndex.releases.filter(r=>!r.demo).map(r=>r.name))]) { @@ -368,11 +368,11 @@ try { await evaluate("document.getElementById('export').value='add';document.getElementById('export').dispatchEvent(new Event('change'));document.getElementById('arguments').value=JSON.stringify([{type:'number',value:'123456789'},{type:'number',value:'11'}]);document.getElementById('output-type').value='number'"); await click('run');await wait(status('Finished')); assert.equal(await evaluate("document.getElementById('result').textContent"),'Returned number: "123456800"'); - await evaluate("document.getElementById('program-picker').value='package:tricu-compiler';document.getElementById('program-picker').dispatchEvent(new Event('change'));document.getElementById('package-version').value='0.1.1';document.getElementById('package-version').dispatchEvent(new Event('change'))"); + await evaluate("document.getElementById('program-picker').value='package:tricu-compiler';document.getElementById('program-picker').dispatchEvent(new Event('change'));document.getElementById('package-version').value='0.1.2';document.getElementById('package-version').dispatchEvent(new Event('change'))"); await click('load-release');await wait(status('Ready')); assert.equal(await evaluate("document.getElementById('source-summary').textContent"),'Package details'); assert.equal(await evaluate("document.getElementById('edit-source').hidden"),true); - assert.equal(await evaluate("document.getElementById('export').options.length"),1165); + assert.equal(await evaluate("document.getElementById('export').options.length"),1171); assert.match(await evaluate("document.getElementById('package-info').textContent"),new RegExp(compilerDescriptor.hash)); const indexedCompilerRequests=requests.filter(p=>p.endsWith('/dist/compiler-worker.js')).length; await click('tab-export-definition'); @@ -384,7 +384,7 @@ try { await click('tab-playground'); // Hash loading/sharing must recognize the indexed compiler too, not only its name. await evaluate(`document.getElementById('program-picker').value='hash';document.getElementById('program-picker').dispatchEvent(new Event('change'));document.getElementById('bundle-hash').value=${JSON.stringify(compilerDescriptor.hash)};document.getElementById('program-hash').dispatchEvent(new Event('submit',{cancelable:true}))`);await wait(status('Ready')); - assert.equal(await evaluate("document.getElementById('export').options.length"),1165); + assert.equal(await evaluate("document.getElementById('export').options.length"),1171); await evaluate("document.getElementById('program-picker').value='package:tricu-source-builder';document.getElementById('program-picker').dispatchEvent(new Event('change'))"); await click('load-release');await wait(status('Ready')); assert.deepEqual(await evaluate("[...document.getElementById('export').options].map(o=>o.value)"),['sourceBuildGraph']); @@ -802,7 +802,7 @@ try { assert.equal(rejectedFunction.nodes.find(n=>n.id===rejectedFunction.root).children[0],0,'function tree must fail the canonical-natural contract'); console.log('PASS default bare contract sugar / checked identity / error Result / rejected function-value annotation'); - await evaluate(`document.getElementById('source-editor').value='id = (x : x)\\nanswer = id 42\\nother = id 7';document.getElementById('source-editor').dispatchEvent(new Event('input'));document.getElementById('arguments').value='[]';document.getElementById('output-type').value='number'`); + await evaluate(`document.getElementById('source-editor').value='id = (x : x)\\nanswer = id 42\\nother = id 7\\nmore = id 9\\nextra = id 11\\nlast = id 13';document.getElementById('source-editor').dispatchEvent(new Event('input'));document.getElementById('arguments').value='[]';document.getElementById('output-type').value='number'`); await click('compile');await wait(compilerStatus('Compiled')); await evaluate("document.getElementById('export').value='other'");await click('run');await wait(compilerStatus('Finished')); assert.equal(await evaluate("document.getElementById('result').textContent"),'Returned number: "7"'); diff --git a/ext/demo-site/test/bundle.test.mjs b/ext/demo-site/test/bundle.test.mjs @@ -5,9 +5,9 @@ import {createHash} from 'node:crypto'; import {Graph} from '../dist/graph.js'; import {COMPILER_BUNDLE_LIMIT,decodeBundle,loadBundle,bundleHash,fetchBytes,fetchBundle,BUNDLE_LIMIT} from '../dist/bundle.js'; import {makeBundle,sizedBundle} from './bundle-fixture.mjs'; -// Current authenticated compiler closure excludes the four patterns exports; -// patterns now belongs to support. Older indexed compiler releases are retained. -const COMPILER_EXPORT_COUNT=1165; +// Independently counted from the authenticated compiler manifest with the +// Python bundle reader; older indexed compiler releases remain retained. +const COMPILER_EXPORT_COUNT=1171; const data=JSON.parse(await readFile(new URL('../demos.json',import.meta.url))); test('stable packaged sources/pins and real compiler bundle decode',async()=>{ for(const [name,demo] of Object.entries(data.demos)){ diff --git a/ext/demo-site/test/compiler-conformance.json b/ext/demo-site/test/compiler-conformance.json @@ -1,6 +1,6 @@ { - "compilerBundleSha256": "520a2bb435a56706164fb34c7ea06e12e143050ffeb1da2632747e427ce61faf", - "hostSha256": "a2cd93511c126b632a3c6dabe7b6d6dadec8727990355828b95a955c6314c6db", + "compilerBundleSha256": "e70583bc724ae495a33ead7e10614e2c6a9664bf4855c7e6042871cbd5d88a09", + "hostSha256": "79bc19656b1af3c4f0cec5699279dbd514cba4eea69b69f084a40520da9fcce3", "backend": "stable", "export": "source_unit.compileStableModuleDefinitions", "cases": [ @@ -23,7 +23,7 @@ "2202020210202102100221020202102021021000" ], "definitions": { - "pair": "212120021200212011200212010211002021100" + "pair": "21212002120021201021200211002021100" }, "result": "221021021002202020210202102100221020202102021021000" }, @@ -38,13 +38,16 @@ "result": "2021020210202100" }, { - "source": "id = (x : x)\nanswer = id 42\nother = id 7", + "source": "id = (x : x)\nanswer = id 42\nother = id 7\nmore = id 9\nextra = id 11\nlast = id 13", "export": "other", "arguments": [], "definitions": { "id": "21100", "answer": "2021020210202100", - "other": "2102102100" + "other": "2102102100", + "more": "21020202100", + "extra": "210210202100", + "last": "210202102100" }, "result": "2102102100" }, @@ -68,7 +71,7 @@ "expectedNumber": 42, "extended": true, "definitions": { - "main": "212121200212002121200212002120112002120112002121200212002120112002120112002120112011212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020021201121200212002120112002120112002120112010212010211002120112011201021201120102120102110021201121200212002120112002120112002120112011200212011201120021201120112010212011201021201021100212011201120112010212011201120102120112010212010211002020211002120102110021202121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002121200212002120102110020212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002021212002120021201121212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020020200212011201121200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212011201120102120112010212010211002020212120021200212010211002020020202121200212002120112002120112002120112010212010211002020200202120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002021100" + "main": "212121200212002121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102120112120021200212010211002120102120102110021201120102120112010212011212002120021201021100212010212010211002020211002120102110021202121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002121200212002120102110020212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020200212010212011212002120021212002120021201021200212002121200212002121200212002120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021201021201021100202121200212002120102110020200202120102121200212002120102110020200202120102110021201021212002120021201021200212002120102110020212010211002021100" }, "result": "2021020210202100" }, diff --git a/ext/demo-site/test/conformance.json b/ext/demo-site/test/conformance.json @@ -1,5 +1,5 @@ { - "hostSha256": "a2cd93511c126b632a3c6dabe7b6d6dadec8727990355828b95a955c6314c6db", + "hostSha256": "79bc19656b1af3c4f0cec5699279dbd514cba4eea69b69f084a40520da9fcce3", "description": "All normal trees <=5 nodes, every ordered application pair; lazy regression and partial/multiple applications.", "cases": [ { diff --git a/ext/demo-site/test/contracts-conformance.json b/ext/demo-site/test/contracts-conformance.json @@ -1,6 +1,6 @@ { - "compilerBundleSha256": "520a2bb435a56706164fb34c7ea06e12e143050ffeb1da2632747e427ce61faf", - "hostSha256": "a2cd93511c126b632a3c6dabe7b6d6dadec8727990355828b95a955c6314c6db", + "compilerBundleSha256": "e70583bc724ae495a33ead7e10614e2c6a9664bf4855c7e6042871cbd5d88a09", + "hostSha256": "79bc19656b1af3c4f0cec5699279dbd514cba4eea69b69f084a40520da9fcce3", "contractsSourceSha256": "8f69b32c50461edd5db536becb6faedd5ba33945bf774534592034350702600a", "bindings": { "matchResult": "base.matchResult", @@ -63,7 +63,7 @@ ], "expected": "2021020210202100", "definitions": { - "id": "2121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002020020212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002021100202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201021212002120021201120021201021100202110021201021100202110021201120112010212011201021201020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120102120112010212010211002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202110021212002120021201020212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110021100" + "id": "21212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002020020212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202110020212120021200212011202120112011021212002120021201021200211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212011212021212002120021201120212011201021212002120021201021200211002021100212010211002021100202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002120102110021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002120112010212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021100" }, "result": "2021020210202100" }, @@ -75,7 +75,7 @@ ], "failure": "not a natural number", "definitions": { - "id": "2121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002020020212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002021100202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201021212002120021201120021201021100202110021201021100202110021201120112010212011201021201020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120102120112010212010211002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202110021212002120021201020212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110021100" + "id": "21212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002020020212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202110020212120021200212011202120112011021212002120021201021200211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212011212021212002120021201120212011201021212002120021201021200211002021100212010211002021100202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002120102110021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002120112010212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021100" }, "result": "2022202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210000", "expected": "2022202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210000" @@ -88,7 +88,7 @@ ], "failure": "not a natural number", "definitions": { - "id": "2121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002020020212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002021100202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201021212002120021201120021201021100202110021201021100202110021201120112010212011201021201020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120102120112010212010211002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202110021212002120021201020212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110021100" + "id": "21212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002020020212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202110020212120021200212011202120112011021212002120021201021200211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212011212021212002120021201120212011201021212002120021201021200211002021100212010211002021100202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002120102110021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002120112010212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021100" }, "result": "2022202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210000", "expected": "2022202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210000" @@ -101,7 +101,7 @@ ], "expected": "2102102100", "definitions": { - "id": "21212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020200202120112121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112010212011201120112010212011201120102120112010212010211002020202021201021100202020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202021201021100202020202020211002020202120112011201021201120102120102110020202020211002020211002021212002120021201120212011201021212002120021201120021201021100202110021201021100202002021201021100212011212021212002120021212002120021201120202021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020211002021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002110021201021100202110021212002120021212002120021201021100202110020200202121200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011202120112010212120021200212011200212010211002021100212010211002021100212011201120102120112010212010202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002120112011201021201120102120102110020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202021100212120021200212010202121202121100211002021202121200212002120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112011201021201120112011201021201120112010212011201021201021100202020202020211002020202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002020202020202121200212002120102110020200202020202020212120021200212011200212011200212011201021201021100202020020202020202120102110020202020202020020202020202020020202020211002020212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002021100202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201021212002120021201120021201021100202110021201021100202110021201120112010212011201021201020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120102120112010212010211002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202110021212002120021201020212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110021100" + "id": "2121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202002021201121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202002021201021100212011212021212002120021212002120021201120202021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002021100202121200212002120112021201120110212120021200212010212002110020211002120102110020211002110021201021100202110021212002120021212002120021201021100202110020200202121200212002121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120112120212120021200212011202120112010212120021200212010212002110020211002120102110020211002022021021021020210210022102102102102021021002202021020210210210022020202020210022102020202021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100021201021100212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110021201120102120112010212120021200212010212002120021201120212120021200212011202120112011021212002120021201021200211002021100212010211002021100212010211002021201021100202021100212011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002120102121200212002120102120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212011200212011200212011201021212002120021201120021201120021212002120021201120021201120021201120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212011201021212002120021201021200212002120102110020212010211002120112010212011201021212002120021201021200212002120102110020212010211002020211002021201021100212011201021212002120021201120021201120021212002120021201120021201120021201120102120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120112010212120021200212010212002120021201021100202120102110020202121200212002120102110020200202021201021212002120021201021100202002020212010211002020202002020202020020202110020212010211002021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202110020212120021200212011202120112011021212002120021201021200211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212011212021212002120021201120212011201021212002120021201021200211002021100212010211002021100202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002120102110021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002120112010212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021100" }, "result": "2102102100" }, @@ -113,7 +113,7 @@ ], "failure": "not a natural number", "definitions": { - "id": "21212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020200202120112121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112010212011201120112010212011201120102120112010212010211002020202021201021100202020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202021201021100202020202020211002020202120112011201021201120102120102110020202020211002020211002021212002120021201120212011201021212002120021201120021201021100202110021201021100202002021201021100212011212021212002120021212002120021201120202021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020211002021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002110021201021100202110021212002120021212002120021201021100202110020200202121200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011202120112010212120021200212011200212010211002021100212010211002021100212011201120102120112010212010202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002120112011201021201120102120102110020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202021100212120021200212010202121202121100211002021202121200212002120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112011201021201120112011201021201120112010212011201021201021100202020202020211002020202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002020202020202121200212002120102110020200202020202020212120021200212011200212011200212011201021201021100202020020202020202120102110020202020202020020202020202020020202020211002020212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002021100202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201021212002120021201120021201021100202110021201021100202110021201120112010212011201021201020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120102120112010212010211002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202110021212002120021201020212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110021100" + "id": "2121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202002021201121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202002021201021100212011212021212002120021212002120021201120202021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002021100202121200212002120112021201120110212120021200212010212002110020211002120102110020211002110021201021100202110021212002120021212002120021201021100202110020200202121200212002121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120112120212120021200212011202120112010212120021200212010212002110020211002120102110020211002022021021021020210210022102102102102021021002202021020210210210022020202020210022102020202021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100021201021100212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110021201120102120112010212120021200212010212002120021201120212120021200212011202120112011021212002120021201021200211002021100212010211002021100212010211002021201021100202021100212011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002120102121200212002120102120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212011200212011200212011201021212002120021201120021201120021212002120021201120021201120021201120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212011201021212002120021201021200212002120102110020212010211002120112010212011201021212002120021201021200212002120102110020212010211002020211002021201021100212011201021212002120021201120021201120021212002120021201120021201120021201120102120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120112010212120021200212010212002120021201021100202120102110020202121200212002120102110020200202021201021212002120021201021100202002020212010211002020202002020202020020202110020212010211002021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202110020212120021200212011202120112011021212002120021201021200211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212011212021212002120021201120212011201021212002120021201021200211002021100212010211002021100202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002120102110021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002120112010212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021100" }, "result": "2022202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210000", "expected": "2022202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210000" @@ -126,7 +126,7 @@ ], "expected": "21020202100", "definitions": { - "id": "212121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112010212011201120112010212011201120102120112010212010211002020202021201021100202020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202021201021100202020202020211002020202120112011201021201120102120102110020202020211002020211002021212002120021201120212011201021212002120021201120021201021100202110021201021100202002120112011212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020200202120102110021201120112120212120021200212120021200212011202020212121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112010212011201120112010212011201120102120112010212010211002020202021201021100202020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202021201021100202020202020211002020202120112011201021201120102120102110020202020211002020211002021212002120021201120212011201021212002120021201120021201021100202110021201021100202110020212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021100212010211002021100212120021200212120021200212010211002021100202002021212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120102121200212002120112002120102110020211002120102110020211002120112011201021201120102120102022021021021020210210022102102102102021021002202021020210210210022020202020210022102020202021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112010212011201021201021100202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020211002121200212002120102021212021211002110020212021212002120021201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120112010212011201120112010212011201120102120112010212010211002020202020202110020202021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110020202020202021212002120021201021100202002020202020202121200212002120112002120112002120112010212010211002020200202020202021201021100202020202020200202020202020200202020202110020202120102110020211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002121200212002120112002120112002120112010212010202110020212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002021100202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201021212002120021201120021201021100202110021201021100202110021201120112010212011201021201020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120102120112010212010211002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202110021212002120021201020212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110021100" + "id": "21212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002020020212011212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002020020212010211002120112120212120021200212120021200212011202020212121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201021212002120021201120021201120021201120112002120112011200212011201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112011201021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002020212010212010211002020202110020202110020212120021200212011202120112010212120021200212010212002110020211002120102110020211002021212002120021201120212011201102121200212002120102120021100202110021201021100202110021100212010211002021100212120021200212120021200212010211002021100202002021212002120021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201121202121200212002120112021201120102121200212002120102120021100202110021201021100202110020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000212010211002120112010212120021200212010212002120021201120212120021200212011202120112011021212002120021201021200211002021100212010211002021100212010211002021201021100212011201021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002020211002120112021212021211002110020212021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020021201021212002120021201021200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120112002120112002120112010212120021200212011200212011200212120021200212011200212011200212011201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002120112010212120021200212010212002120021201021100202120102110021201120102120112010212120021200212010212002120021201021100202120102110020202110020212010211002120112010212120021200212011200212011200212120021200212011200212011200212011201021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021201120102121200212002120102120021200212010211002021201021100202021212002120021201021100202002020212010212120021200212010211002020020202120102110020202020020202020200202021100202120102110020211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002120112021100212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202110020212120021200212011202120112011021212002120021201021200211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212011212021212002120021201120212011201021212002120021201021200211002021100212010211002021100202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002120102110021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002120112010212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021100" }, "result": "21020202100" }, @@ -138,7 +138,7 @@ ], "failure": "not a natural number", "definitions": { - "id": "212121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112010212011201120112010212011201120102120112010212010211002020202021201021100202020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202021201021100202020202020211002020202120112011201021201120102120102110020202020211002020211002021212002120021201120212011201021212002120021201120021201021100202110021201021100202002120112011212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020200202120102110021201120112120212120021200212120021200212011202020212121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020020021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120212120021200212011212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021100212011201021201021100212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112010212011201120112010212011201120102120112010212010211002020202021201021100202020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020202021201021100202020202020211002020202120112011201021201120102120102110020202020211002020211002021212002120021201120212011201021212002120021201120021201021100202110021201021100202110020212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021100212010211002021100212120021200212120021200212010211002021100202002021212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120102121200212002120112002120102110020211002120102110020211002120112011201021201120102120102022021021021020210210022102102102102021021002202021020210210210022020202020210022102020202021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112010212011201021201021100202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002120112011201120102120112011201021201120102120102110020212011201120102120112010212010211002020211002121200212002120102021212021211002110020212021212002120021201121212021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110020102020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011212021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002020021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112002120112011201120112011201120112010212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120112010212011201120112010212011201120102120112010212010211002020202020202110020202021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110020202020202021212002120021201021100202002020202020202121200212002120112002120112002120112010212010211002020200202020202021201021100202020202020200202020202020200202020202110020202120102110020211002121202121200212002120112002120112002121200212002120112002120112002120112010212010211002021201021100202021100202121100211002110021100212010211002121200212002120112002120112002120112010212010202110020212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002021100202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201021212002120021201120021201021100202110021201021100202110021201120112010212011201021201020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120102120112010212010211002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202110021212002120021201020212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110021100" + "id": "21212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002020020212011212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002020020212010211002120112120212120021200212120021200212011202020212121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201021212002120021201120021201120021201120112002120112011200212011201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112011201021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002020212010212010211002020202110020202110020212120021200212011202120112010212120021200212010212002110020211002120102110020211002021212002120021201120212011201102121200212002120102120021100202110021201021100202110021100212010211002021100212120021200212120021200212010211002021100202002021212002120021212002120021201120021201120021212002120021201120021201120021201121200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201121202121200212002120112021201120102121200212002120102120021100202110021201021100202110020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000212010211002120112010212120021200212010212002120021201120212120021200212011202120112011021212002120021201021200211002021100212010211002021100212010211002021201021100212011201021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002020211002120112021212021211002110020212021212002120021201121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020102020021201021212002120021201021200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002121200212002120112002120112002120112010212120021200212011200212011200212120021200212011200212011200212011201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002120112010212120021200212010212002120021201021100202120102110021201120102120112010212120021200212010212002120021201021100202120102110020202110020212010211002120112010212120021200212011200212011200212120021200212011200212011200212011201021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212010211002021201021212002120021201021200212002120102110020212010211002020212010212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120102110020212010211002020212010211002020202110021201120102121200212002120102120021200212010211002021201021100202021212002120021201021100202002020212010212120021200212010211002020020202120102110020202020020202020200202021100202120102110020211002121202121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202121100211002110021100212010211002120112021100212010211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202110020212120021200212011202120112011021212002120021201021200211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212011212021212002120021201120212011201021212002120021201021200211002021100212010211002021100202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002120102110021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002120112010212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021100" }, "result": "2022202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210000", "expected": "2022202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210000" @@ -152,7 +152,7 @@ ], "failure": "not a natural number", "definitions": { - "first": "2121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011200212011200212011201120212011201021212002120021201120021201021100202110021201120102120102110020202002021212002120021201120021201120021201120112120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020200212011201120112011212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020200202120102110021201120112011201121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002021100202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201021212002120021201120021201021100202110021201021100202110021201120112010212011201021201020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120102120112010212010211002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202110021212002120021201020212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110021201120112011201021201120112010212011201021201021100202021212021212002120021212002120021201120202021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002002002110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112021212002120021201121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002110021201120102120102110021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201021201120112011201021201120112010212011201021201021100202020202120102110020202020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202020202120102110020202020202021100202020212011201120102120112010212010211002020202021100202021100202121200212002120112021201120102121200212002120112002120102110020211002120102110020211002021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002110021201021100202110021212002120021212002120021201021100202110020200202121200212002121200212002120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011202120112010212120021200212011200212010211002021100212010211002021100212011201120102120112010212010202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201102121200212002120112002120102110020211002120102110020211002120112011201021201120102120102110020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120112010212011201120102120112010212010211002021201120112010212011201021201021100202021100212120021200212010202121202121100211002021202121200212002120112121202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002010202002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201121202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112002120112002120112011200212120021200212011200212011200212011201120021201120102120102110020212010211002020211002120112011201021201120102120102110020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020202120102110020202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202120112010212010211002020202120102110020202021100202002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011200212011201120112011201120112011201021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112011201021201120112011201021201120112010212011201021201021100202020202020211002020202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201021201120112011201120112010212011201120112011201021201120112011201021201120112010212011201021201021100202020212011201120112010212011201120102120112010212010211002020202020202121200212002120102110020200202020202020212120021200212011200212011200212011201021201021100202020020202020202120102110020202020202020020202020202020020202020211002020212010211002021100212120212120021200212011200212011200212120021200212011200212011200212011201021201021100202120102110020202110020212110021100211002110021201021100211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100200200211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011202121200212002120112120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100211002120112010212010211002120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120102120112011201120102120112011201021201120102120102110020202020212010211002020202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202020212010211002020202020202110020202021201120112010212011201021201021100202020202110020202110020212120021200212011202120112010212120021200212011200212010211002021100212010211002021100202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120212011201021212002120021201120021201021100202110021201021100202110021201120112010212011201021201020220210210210202102100221021021021020210210022020210202102102100220202020202100221020202020210210022020202020210022021021021020210210022102020202021021002202021020210210210022102021020210210210022021020202102102100221020202020210210022020210210202102100220202020202100220210210210202102100221020210202102102100221020210210202102100220210202020210210022102021020202102100220210202021021021000202120112010212010211002121200212002120112002120112002120112011200212011201120021201120112011202121200212002120112021201120110212120021200212011200212010211002021100212010211002021100212011201120102120112010212010211002021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120212120021200212011202120112011021212002120021201120021201021100202110021201021100202110021201120112011201021201120112010212011201021201021100202120112011201021201120102120102110020202110021212002120021201020212120212110021100202120212120021200212011212120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100201020200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201120021201120112002120112011201120212120021200212011200212011200212011201120021212002120021201120021201120021201120112002120112010212010211002021201021100202021100212011201120102120112010212010211002021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202020212010211002020212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112010212011201120102120112010212010211002020212011201021201021100202020212010211002020202110020200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002120112011201120112011201120021201120112011201120112011200212011201120112011201120112010212011201120112011201120102120112011201120112010212011201120112010212011201120102120112010212010211002020202120112011201120102120112011201021201120102120102110021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112002120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120021201120112011201120112011201120102120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201120102120112011201120102120112011201021201120102120102110020202020202021100202020212011201021201021100212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212120021200212011200212011200212011201120021201120112002120112011201120021201120112011200212011201120112011200212011201120112011200212011201120112011201120021201120112011201120112002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201120021201120112011201120021201120112011201120112002120112011201120112011200212011201120112011201120112021201120112011202121100200212120021200212011200212011200212011201120021201120112002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120112002120112011200212011201120112021212002120021201120021201120021201120112002121200212002120112002120112002120112011200212011201021201021100202120102110020202110021201120112010212011201021201021100202121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120102120112011201021201120102120102110020202021201021100202021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021212002120021201120021201120021201120112002120112011200212011201120112002120112011201120021201120112011201021201120112010212011201021201021100202021201120102120102110020202021201021100202020211002121200212002120112002120112002120112011200212011201120021201120112011200212011201120112002120112011201120112002120112011201120112002120112011201120112011200212011201120112011201120021201120112011201120112011200212011201120112011201120112002120112011201120112011201120102120112011201120112011201021201120112011201120102120112011201120102120112011201021201120102120102110020202021201120112011201021201120112010212011201021201021100202020202020212120021200212010211002020020202020202021212002120021201120021201120021201120102120102110020202002020202020212010211002020202020202002020202020202002020202021100202021201021100202110021212021212002120021201120021201120021212002120021201120021201120021201120102120102110020212010211002020211002021211002110021100211002120102110021100" + "first": "212121202121200212002120112002120112002120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201021212002120021201120021201120021201120112002120112011200212011201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112011201021212002120021201120021201120021201120102120112002120112002120112011200212011201120021201121200212002120112002120112002120112011202121200212002120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100211002120102120102110021201021201021201021100212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110021201021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002020212010212010211002020202110020202110020212010212120021200212011202120112010212120021200212010212002110020211002120102110020200202120102121200212002120112120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002020021201021201021201121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202002021201021100212011212021212002120021212002120021201120202021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002021100202121200212002120112021201120110212120021200212010212002110020211002120102110020211002110021201021100202110021212002120021212002120021201021100202110020200202121200212002121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120112120212120021200212011202120112010212120021200212010212002110020211002120102110020211002022021021021020210210022102102102102021021002202021020210210210022020202020210022102020202021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100021201021100212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110021201120102120112010212120021200212010212002120021201120212120021200212011202120112011021212002120021201021200211002021100212010211002021100212010211002021201021100202021100212011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002120102121200212002120102120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212011200212011200212011201021212002120021201120021201120021212002120021201120021201120021201120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212011201021212002120021201021200212002120102110020212010211002120112010212011201021212002120021201021200212002120102110020212010211002020211002021201021100212011201021212002120021201120021201120021212002120021201120021201120021201120102120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120112010212120021200212010212002120021201021100202120102110020202121200212002120102110020200202021201021212002120021201021100202002020212010211002020202002020202020020202110020212010211002021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100212010211002021212021212002120021212002120021201120202021212120212120021200212011200212011200212011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120102121200212002120112002120112002120112011200212011201120021201120112011202121212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020020021100212011201120102121200212002120112002120112002120112010212011200212011200212011201120021201120112002120112120021200212011200212011200212011201120212120021200212011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021100212010212010211002120102120102120102110021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002120102121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100202021201021201021100202020211002020211002021212002120021201120212011201021212002120021201021200211002021100212010211002021100202121200212002120112021201120110212120021200212010212002110020211002120102110020211002110021201021100202110021212002120021212002120021201021100202110020200202121200212002121200212002120112002120112002121200212002120112002120112002120112120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120112120212120021200212011202120112010212120021200212010212002110020211002120102110020211002022021021021020210210022102102102102021021002202021020210210210022020202020210022102020202021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100021201021100212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110021201120102120112010212120021200212010212002120021201120212120021200212011202120112011021212002120021201021200211002021100212010211002021100212010211002021201021100202021100212011202121202121100211002021202121200212002120112121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002010202002120102121200212002120102120021200212120021200212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212120021200212011200212011200212011201021212002120021201120021201120021212002120021201120021201120021201120112120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200212011201021212002120021201021200212002120102110020212010211002120112010212011201021212002120021201021200212002120102110020212010211002020211002021201021100212011201021212002120021201120021201120021212002120021201120021201120021201120102120112002120112002121200212002120112002120112002121200212002120112002120112002120112011202120112011201120212110020021212002120021201120021201120021201120112002120112011200212120021200212011200212011200212011201021201120021201120021212002120021201021200212002120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021201021100202120102121200212002120102120021200212010211002021201021100202021201021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212010211002021201021100202021201021100202020211002120112010212120021200212010212002120021201021100202120102110020202121200212002120102110020200202021201021212002120021201021100202002020212010211002020202002020202020020202110020212010211002021100212120212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020212110021100211002110021201021100211002121202121200212002121200212002120112020202121212021212002120021201120021201120021201120112021212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100200200211002120112010212120021200212011200212011200212011201120021201120112002120112011201120212121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002002002110021201120112010212120021200212011200212011200212011201021201120021201120021201120112002120112011200212011212002120021201120021201120021201120112021212002120021201121202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002110021201021201021100212010212010212010211002121200212002120112002120112002121200212002120102120021200212010211002021201021100202021100212010212120021200212011200212011200212120021200212010212002120021201021100202120102110020202110020202120102120102110020202021100202021100202121200212002120112021201120102121200212002120102120021100202110021201021100202110020212120021200212011202120112011021212002120021201021200211002021100212010211002021100211002120102110020211002121200212002121200212002120102110020211002020020212120021200212120021200212011200212011200212120021200212011200212011200212011212002120021201120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100212011212021212002120021201120212011201021212002120021201021200211002021100212010211002021100202202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210002120102110021201120102121200212002120102120021200212011202121200212002120112021201120110212120021200212010212002110020211002120102110020211002120102110020212010211002120112010212011201021212002120021201021200212002120112021212002120021201120212011201102121200212002120102120021100202110021201021100202110021201021100202120102110020202110021201120212120212110021100202120212120021200212011212120212120021200212011200212011200212011201021201120021212002120021201021200211002021100202021100201020200212010212120021200212010212002120021212002120021201120021201120021212002120021201120021201120021212002120021201120021201120021201120112021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110021212002120021201120021201120021201120102121200212002120112002120112002121200212002120112002120112002120112011212021212002120021201120021201120021201120102120112002121200212002120102120021100202110020202110020021201120102121200212002120102120021200212010211002021201021100212011201021201120102121200212002120102120021200212010211002021201021100202021100202120102110021201120102121200212002120112002120112002121200212002120112002120112002120112010212011200212011200212120021200212011200212011200212120021200212011200212011200212011201120212011201120112021211002002121200212002120112002120112002120112011200212011201120021212002120021201120021201120021201120102120112002120112002121200212002120102120021200212011202121200212002120112002120112002120112010212011200212120021200212010212002110020211002020211002120102110020212010212120021200212010212002120021201021100202120102110020202120102121200212002120112002120112002120112010212011200212011200212120021200212010212002120021201021100202120102110020202120102110020202021100212011201021212002120021201021200212002120102110020212010211002020212120021200212010211002020020202120102121200212002120102110020200202021201021100202020200202020202002020211002021201021100202110021212021212002120021201120021201120021212002120021201021200212002120102110020212010211002020211002021211002110021100211002120102110021100" }, "result": "2022202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210000", "expected": "2022202102102102021021002210210210210202102100220202102021021021002202020202021002210202020202102100220202020202100220210210210202102100221020202020210210022020210202102102100221020210202102102100220210202021021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202102021021021002210202102102021021002202102020202102100221020210202021021002202102020210210210000" diff --git a/ext/demo-site/test/prepare-compiler.py b/ext/demo-site/test/prepare-compiler.py @@ -42,7 +42,7 @@ cases = [ dict(source='id = (x : x)', export='id', arguments=[p.of_number(42)]), dict(source='pair a b = t a b', export='pair', arguments=[p.of_number(7), p.of_string('hi')]), dict(source='id = (x : x)\nanswer = id 42', export='answer', arguments=[]), - dict(source='id = (x : x)\nanswer = id 42\nother = id 7', export='other', arguments=[]), + dict(source='id = (x : x)\nanswer = id 42\nother = id 7\nmore = id 9\nextra = id 11\nlast = id 13', export='other', arguments=[]), dict(source='io=t "tricuIO" (t 1 (t 11 t))', export='io', arguments=[], mode='io', input='λ雪🙂'), dict(source='main xs = (let rec\n last [h] = h\n last [_ | rest] = last rest\n last _ = 0\n in case xs of\n [] = 0\n _ = last xs)', export='main', arguments=['2'+p.of_number(7)+'2'+p.of_number(42)+'0'], expectedNumber=42, extended=True), dict(source='id = ('), diff --git a/ext/demo-site/test/release.py b/ext/demo-site/test/release.py @@ -49,7 +49,7 @@ def main(): rejected(lambda: module.seed(pack, Path('relative-store'))) with tempfile.TemporaryDirectory(prefix='arboricx-seed-test-') as temp: compiler_row = next(row for row in rows if 'compiler' in row['uses']) - assert 1_048_576 < compiler_row['size'] <= 2 * 1_048_576 + assert 0 < compiler_row['size'] <= 2 * 1_048_576 # The compiler ceiling applies even when that artifact is also a named # release. Ordinary package roles independently admit exactly 16 MiB. limits_pack = Path(temp) / 'limits-pack' @@ -63,13 +63,17 @@ def main(): target = Path(temp) / 'rejected-size-role' rejected(lambda: module.seed(limits_pack, target)) assert not target.exists() - data = b'x' * 16_777_216 - digest = hashlib.sha256(data).hexdigest() - obj = limits_pack / 'objects' / digest[:3] / (digest + '.arboricx') - obj.parent.mkdir(parents=True); obj.write_bytes(data) - (limits_pack / 'dependencies.json').write_text(json.dumps(dict(schema=1, - bundles=[dict(hash=digest, size=len(data), uses=['release:boundary@0.1.0'])]))) - assert module.seed(limits_pack, Path(temp) / 'boundary-store') == (1, 1) + # Boundary controls must not depend on the current compiler's size. + # Constructor-K compilation reduced it below the former 1 MiB floor. + for size, uses in [(2_097_152, ['compiler', 'release:compiler@boundary']), + (16_777_216, ['release:boundary@0.1.0'])]: + data = b'x' * size + digest = hashlib.sha256(data).hexdigest() + obj = limits_pack / 'objects' / digest[:3] / (digest + '.arboricx') + obj.parent.mkdir(parents=True, exist_ok=True); obj.write_bytes(data) + (limits_pack / 'dependencies.json').write_text(json.dumps(dict(schema=1, + bundles=[dict(hash=digest, size=len(data), uses=uses)]))) + assert module.seed(limits_pack, Path(temp) / ('boundary-' + str(size))) == (1, 1) concurrent = Path(temp) / 'concurrent' children = [subprocess.Popen([str(args.deps / 'bin/arboricx-seed-site'), str(concurrent)], stdout=subprocess.PIPE, stderr=subprocess.PIPE) for _ in range(2)] diff --git a/ext/demo-site/test/showcase-preparation.test.mjs b/ext/demo-site/test/showcase-preparation.test.mjs @@ -13,7 +13,7 @@ site=Path(__import__('sys').argv[1]) spec=importlib.util.spec_from_file_location('showcase',site/'prepare-showcase.py') m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m) index=json.loads((site/'packages.json').read_text()) -releases=[r for r in index['releases'] if r['name'] in ['tricu-graphs','parser-demo','lexer-demo'] and r['version']=='0.1.0'] +releases=[next(r for r in reversed(index['releases']) if r['name']==name) for name in ['tricu-graphs','parser-demo','lexer-demo']] demo=[e for e in json.loads((site/'catalogue.json').read_text()) if e['id'] in ['parser','lexer']] goldens=[json.loads((site/(e['id']+'-demo.json')).read_text()) for e in demo] artifacts={r['hash']:site/'bundles'/(r['hash']+'.arboricx') for r in releases} @@ -55,6 +55,22 @@ with tempfile.TemporaryDirectory() as tmp: rows=json.loads((root/'packages.json').read_text())['releases'] assert rows[:3]==releases and rows[-1]==next_release assert (root/'bundles'/(pin+'.arboricx')).read_bytes()==data + # A changed native catalogue selection requires a fresh version of its own + # already indexed package, not merely an unrelated accepted release. + updated=dict(demo[0],hash=pin) + vectors=[dict(goldens[0],hash=pin),goldens[1]] + before=(root/'catalogue.json').read_bytes() + for invalid in [[],[dict(releases[1],hash=pin)], + [dict(releases[1],name='unrelated',version='new-demo',hash=pin)]]: + try:m.stage(root,{pin:path},invalid,[updated,demo[1]],vectors) + except ValueError:pass + else:raise AssertionError('unversioned or unrelated demo upgrade accepted') + assert (root/'catalogue.json').read_bytes()==before + upgrade=dict(releases[1],version='new-demo',hash=pin) + m.stage(root,{pin:path},[upgrade],[updated,demo[1]],vectors) + assert json.loads((root/'catalogue.json').read_text())==[updated,demo[1]] + assert json.loads((root/'packages.json').read_text())['releases']==releases+[next_release,upgrade] + m.stage(root,{pin:path},[upgrade],[updated,demo[1]],vectors) print('accepted') `,site],{encoding:'utf8',timeout:15000,maxBuffer:100000}); assert.equal(output.trim(),'accepted');